home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / editors / emcs1855 / emcs1855.0 / lisp / cl.elc < prev    next >
Emacs Compiled Lisp  |  1988-04-11  |  52.5 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was processed as: Emacs Compiled Lisp (other/emacsCompiledLisp).
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
1% dexvert Emacs Compiled Lisp (other/emacsCompiledLisp) magic Unsupported
1% dexvert Combustion 2 Particle Library (other/combustion2ParticleLibrary) ext Unsupported
100% file Emacs v18 byte-compiled Lisp data default
99% file data default
100% gt2 Kopftext: '(provide (quote cl)) default (weak)
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime text/x-emacs-lisp default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0a 28 70 72 6f 76 69 64 | 65 20 28 71 75 6f 74 65 |.(provid|e (quote|
|00000010| 20 63 6c 29 29 0a 0a 28 | 64 65 66 6d 61 63 72 6f | cl))..(|defmacro|
|00000020| 20 70 73 65 74 71 20 28 | 26 72 65 73 74 20 70 61 | psetq (|&rest pa|
|00000030| 69 72 73 29 20 22 28 70 | 73 65 74 71 20 7b 56 41 |irs) "(p|setq {VA|
|00000040| 52 49 41 42 4c 45 20 56 | 41 4c 55 45 7d 2e 2e 2e |RIABLE V|ALUE}...|
|00000050| 29 3a 20 49 6e 20 70 61 | 72 61 6c 6c 65 6c 2c 20 |): In pa|rallel, |
|00000060| 73 65 74 20 65 61 63 68 | 20 56 41 52 49 41 42 4c |set each| VARIABL|
|00000070| 45 20 74 6f 20 69 74 73 | 20 56 41 4c 55 45 2e 0a |E to its| VALUE..|
|00000080| 41 6c 6c 20 74 68 65 20 | 56 41 4c 55 45 73 20 61 |All the |VALUEs a|
|00000090| 72 65 20 65 76 61 6c 75 | 61 74 65 64 2c 20 61 6e |re evalu|ated, an|
|000000a0| 64 20 74 68 65 6e 20 61 | 6c 6c 20 74 68 65 20 56 |d then a|ll the V|
|000000b0| 41 52 49 41 42 4c 45 73 | 20 61 72 65 20 73 65 74 |ARIABLEs| are set|
|000000c0| 2e 0a 41 73 69 64 65 20 | 66 72 6f 6d 20 6f 72 64 |..Aside |from ord|
|000000d0| 65 72 20 6f 66 20 65 76 | 61 6c 75 61 74 69 6f 6e |er of ev|aluation|
|000000e0| 2c 20 74 68 69 73 20 69 | 73 20 74 68 65 20 73 61 |, this i|s the sa|
|000000f0| 6d 65 20 61 73 20 60 73 | 65 74 71 27 2e 22 20 28 |me as `s|etq'." (|
|00000100| 62 79 74 65 2d 63 6f 64 | 65 20 22 09 47 ce ce ce |byte-cod|e ".G...|
|00000110| ce ce ce 1e 07 1e 06 1d | 1c 1b 1a 18 cf d0 08 d1 |........|........|
|00000120| 5c 22 d2 5c 22 85 1e 00 | d3 d4 21 88 09 ce 1e 09 |\".\"...|..!.....|
|00000130| 1e 08 0e 08 85 5b 00 0e | 08 40 89 16 09 88 0e 09 |.....[..|.@......|
|00000140| 39 3f 85 3f 00 d3 d5 d6 | 0e 09 21 5c 22 88 0e 09 |9?.?....|..!\"...|
|00000150| 0a 42 89 12 88 0e 08 41 | 40 0b 42 89 13 88 0e 08 |.B.....A|@.B.....|
|00000160| 41 41 89 16 08 88 82 25 | 00 2a 88 0b ce ce 1e 0b |AA.....%|.*......|
|00000170| 1e 0a 1e 08 0e 08 85 93 | 00 0e 08 40 89 16 0a 88 |........|...@....|
|00000180| d7 20 89 16 0b 88 0e 0b | 0e 0a 44 0c 42 89 14 88 |. ......|..D.B...|
|00000190| 0e 0b 0d 42 89 15 88 0e | 08 41 89 16 08 88 82 66 |...B....|.A.....f|
|000001a0| 00 2b 88 d8 0d 21 89 15 | 88 0a 0d 1e 0d 1e 0c 0e |.+...!..|........|
|000001b0| 0c 85 c5 00 0e 0c 40 0e | 0d 40 0e 06 42 42 89 16 |......@.|.@..BB..|
|000001c0| 06 88 0e 0c 41 89 16 0c | 88 0e 0d 41 89 16 0d 88 |....A...|...A....|
|000001d0| 82 a1 00 2a 88 d9 0c da | 0e 06 42 ce 46 2e 07 87 |...*....|..B.F...|
|000001e0| 22 20 5b 6e 66 6f 72 6d | 73 20 70 61 69 72 73 20 |" [nform|s pairs |
|000001f0| 73 79 6d 62 6f 6c 73 20 | 66 6f 72 6d 73 20 62 69 |symbols |forms bi|
|00000200| 6e 64 69 6e 67 73 20 6e | 65 77 73 79 6d 73 20 61 |ndings n|ewsyms a|
|00000210| 73 73 69 67 6e 6d 65 6e | 74 73 20 69 20 70 74 72 |ssignmen|ts i ptr|
|00000220| 20 76 61 72 20 66 6f 72 | 6d 20 6e 65 77 73 79 6d | var for|m newsym|
|00000230| 20 70 74 72 31 20 70 74 | 72 32 20 6e 69 6c 20 2f | ptr1 pt|r2 nil /|
|00000240| 3d 20 25 20 32 20 30 20 | 65 72 72 6f 72 20 22 4f |= % 2 0 |error "O|
|00000250| 64 64 20 6e 75 6d 62 65 | 72 20 6f 66 20 61 72 67 |dd numbe|r of arg|
|00000260| 75 6d 65 6e 74 73 20 74 | 6f 20 60 70 73 65 74 71 |uments t|o `psetq|
|00000270| 27 22 20 22 60 70 73 65 | 74 71 27 20 65 78 70 65 |'" "`pse|tq' expe|
|00000280| 63 74 65 64 20 61 20 73 | 79 6d 62 6f 6c 2c 20 66 |cted a s|ymbol, f|
|00000290| 6f 75 6e 64 20 27 25 73 | 27 2e 22 20 70 72 69 6e |ound '%s|'." prin|
|000002a0| 31 2d 74 6f 2d 73 74 72 | 69 6e 67 20 67 65 6e 73 |1-to-str|ing gens|
|000002b0| 79 6d 20 6e 72 65 76 65 | 72 73 65 20 6c 65 74 20 |ym nreve|rse let |
|000002c0| 73 65 74 71 5d 20 31 31 | 29 29 0a 0a 28 64 65 66 |setq] 11|))..(def|
|000002d0| 75 6e 20 70 61 69 72 2d | 77 69 74 68 2d 6e 65 77 |un pair-|with-new|
|000002e0| 73 79 6d 73 20 28 6f 6c | 64 66 6f 72 6d 73 29 20 |syms (ol|dforms) |
|000002f0| 22 5c 0a 50 41 49 52 2d | 57 49 54 48 2d 4e 45 57 |"\.PAIR-|WITH-NEW|
|00000300| 53 59 4d 53 20 4f 4c 44 | 46 4f 52 4d 53 0a 54 68 |SYMS OLD|FORMS.Th|
|00000310| 65 20 74 6f 70 2d 6c 65 | 76 65 6c 20 63 6f 6d 70 |e top-le|vel comp|
|00000320| 6f 6e 65 6e 74 73 20 6f | 66 20 74 68 65 20 6c 69 |onents o|f the li|
|00000330| 73 74 20 6f 6c 64 66 6f | 72 6d 73 20 61 72 65 20 |st oldfo|rms are |
|00000340| 70 61 69 72 65 64 20 77 | 69 74 68 20 66 72 65 73 |paired w|ith fres|
|00000350| 68 0a 73 79 6d 62 6f 6c | 73 2c 20 74 68 65 20 70 |h.symbol|s, the p|
|00000360| 61 69 72 69 6e 67 73 20 | 6c 69 73 74 20 61 6e 64 |airings |list and|
|00000370| 20 74 68 65 20 6e 65 77 | 73 79 6d 73 20 6c 69 73 | the new|syms lis|
|00000380| 74 20 61 72 65 20 72 65 | 74 75 72 6e 65 64 2e 22 |t are re|turned."|
|00000390| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 09 c6 c6 | (byte-c|ode "...|
|000003a0| 1b 1a 18 c7 08 21 3f 85 | 2d 00 c8 20 1c 0c 08 40 |.....!?.|-.. ...@|
|000003b0| 44 0a 42 89 12 88 0c 0b | 42 89 13 29 88 08 41 1d |D.B.....|B..)..A.|
|000003c0| 0d 89 10 88 c6 29 88 82 | 06 00 88 c9 ca 0a 21 ca |.....)..|......!.|
|000003d0| 0b 21 5c 22 2b 87 22 20 | 5b 70 74 72 20 6f 6c 64 |.!\"+." |[ptr old|
|000003e0| 66 6f 72 6d 73 20 62 69 | 6e 64 69 6e 67 73 20 6e |forms bi|ndings n|
|000003f0| 65 77 73 79 6d 73 20 6e | 65 77 73 79 6d 20 47 24 |ewsyms n|ewsym G$|
|00000400| 24 5f 30 20 6e 69 6c 20 | 65 6e 64 70 20 67 65 6e |$_0 nil |endp gen|
|00000410| 74 65 6d 70 20 76 61 6c | 75 65 73 20 6e 72 65 76 |temp val|ues nrev|
|00000420| 65 72 73 65 5d 20 37 29 | 29 0a 0a 28 64 65 66 75 |erse] 7)|)..(defu|
|00000430| 6e 20 7a 69 70 2d 6c 69 | 73 74 73 20 28 65 76 65 |n zip-li|sts (eve|
|00000440| 6e 73 20 6f 64 64 73 29 | 20 22 5c 0a 4d 65 72 67 |ns odds)| "\.Merg|
|00000450| 65 20 74 77 6f 20 6c 69 | 73 74 73 20 45 56 45 4e |e two li|sts EVEN|
|00000460| 53 20 61 6e 64 20 4f 44 | 44 53 2c 20 74 61 6b 69 |S and OD|DS, taki|
|00000470| 6e 67 20 65 6c 74 73 20 | 66 72 6f 6d 20 65 61 63 |ng elts |from eac|
|00000480| 68 20 6c 69 73 74 20 61 | 6c 74 65 72 6e 61 74 69 |h list a|lternati|
|00000490| 6e 67 6c 79 2e 0a 45 56 | 45 4e 53 20 61 6e 64 20 |ngly..EV|ENS and |
|000004a0| 4f 44 44 53 20 61 72 65 | 20 74 77 6f 20 6c 69 73 |ODDS are| two lis|
|000004b0| 74 73 2e 20 20 5a 49 50 | 2d 4c 49 53 54 53 20 63 |ts. ZIP|-LISTS c|
|000004c0| 6f 6e 73 74 72 75 63 74 | 73 20 61 20 6e 65 77 20 |onstruct|s a new |
|000004d0| 6c 69 73 74 2c 20 77 68 | 6f 73 65 0a 65 76 65 6e |list, wh|ose.even|
|000004e0| 20 6e 75 6d 62 65 72 65 | 64 20 65 6c 65 6d 65 6e | numbere|d elemen|
|000004f0| 74 73 20 28 30 2c 32 2c | 2e 2e 2e 29 20 63 6f 6d |ts (0,2,|...) com|
|00000500| 65 20 66 72 6f 6d 20 45 | 56 45 4e 53 20 61 6e 64 |e from E|VENS and|
|00000510| 20 77 68 6f 73 65 20 6f | 64 64 0a 6e 75 6d 62 65 | whose o|dd.numbe|
|00000520| 72 65 64 20 65 6c 65 6d | 65 6e 74 73 20 28 31 2c |red elem|ents (1,|
|00000530| 33 2c 2e 2e 2e 29 20 63 | 6f 6d 65 20 66 72 6f 6d |3,...) c|ome from|
|00000540| 20 4f 44 44 53 2e 20 0a | 54 68 65 20 63 6f 6e 73 | ODDS. .|The cons|
|00000550| 74 72 75 63 74 69 6f 6e | 20 73 74 6f 70 73 20 77 |truction| stops w|
|00000560| 68 65 6e 20 74 68 65 20 | 73 68 6f 72 74 65 72 20 |hen the |shorter |
|00000570| 6c 69 73 74 20 69 73 20 | 65 78 68 61 75 73 74 65 |list is |exhauste|
|00000580| 64 2e 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |d." (byt|e-code "|
|00000590| 09 18 0b 1a 08 40 1c 0a | 40 1d c7 1e 06 c8 08 21 |.....@..|@......!|
|000005a0| 86 16 00 c8 0a 21 3f 85 | 35 00 0d 0c 0e 06 42 42 |.....!?.|5.....BB|
|000005b0| 89 16 06 88 08 41 10 0a | 41 12 08 40 14 0a 40 89 |.....A..|A..@..@.|
|000005c0| 15 88 82 0d 00 88 c9 0e | 06 21 2d 87 22 20 5b 70 |........|.!-." [p|
|000005d0| 30 20 65 76 65 6e 73 20 | 70 31 20 6f 64 64 73 20 |0 evens |p1 odds |
|000005e0| 65 76 65 6e 20 6f 64 64 | 20 72 65 73 75 6c 74 20 |even odd| result |
|000005f0| 6e 69 6c 20 65 6e 64 70 | 20 6e 72 65 76 65 72 73 |nil endp| nrevers|
|00000600| 65 5d 20 36 29 29 0a 0a | 28 64 65 66 75 6e 20 75 |e] 6))..|(defun u|
|00000610| 6e 7a 69 70 2d 6c 69 73 | 74 20 28 6c 69 73 74 29 |nzip-lis|t (list)|
|00000620| 20 22 5c 0a 45 78 74 72 | 61 63 74 20 65 76 65 6e | "\.Extr|act even|
|00000630| 20 61 6e 64 20 6f 64 64 | 20 65 6c 65 6d 65 6e 74 | and odd| element|
|00000640| 73 20 6f 66 20 4c 49 53 | 54 20 69 6e 74 6f 20 74 |s of LIS|T into t|
|00000650| 77 6f 20 73 65 70 61 72 | 61 74 65 20 6c 69 73 74 |wo separ|ate list|
|00000660| 73 2e 0a 54 68 65 20 61 | 72 67 75 6d 65 6e 74 20 |s..The a|rgument |
|00000670| 4c 49 53 54 20 69 73 20 | 73 65 70 61 72 61 74 65 |LIST is |separate|
|00000680| 64 20 69 6e 20 74 77 6f | 20 73 74 72 61 6e 64 73 |d in two| strands|
|00000690| 2c 20 74 68 65 20 65 76 | 65 6e 20 61 6e 64 20 74 |, the ev|en and t|
|000006a0| 68 65 20 6f 64 64 0a 6e | 75 6d 62 65 72 65 64 20 |he odd.n|umbered |
|000006b0| 65 6c 65 6d 65 6e 74 73 | 2e 20 20 4e 75 6d 62 65 |elements|. Numbe|
|000006c0| 72 69 6e 67 20 73 74 61 | 72 74 73 20 77 69 74 68 |ring sta|rts with|
|000006d0| 20 30 2c 20 73 6f 20 74 | 68 65 20 66 69 72 73 74 | 0, so t|he first|
|000006e0| 20 65 6c 65 6d 65 6e 74 | 0a 62 65 6c 6f 6e 67 73 | element|.belongs|
|000006f0| 20 69 6e 20 45 56 45 4e | 53 2e 20 4e 6f 20 63 68 | in EVEN|S. No ch|
|00000700| 65 63 6b 20 69 73 20 6d | 61 64 65 20 74 68 61 74 |eck is m|ade that|
|00000710| 20 74 68 65 72 65 20 69 | 73 20 61 6e 20 65 76 65 | there i|s an eve|
|00000720| 6e 20 6e 75 6d 62 65 72 | 20 6f 66 0a 65 6c 65 6d |n number| of.elem|
|00000730| 65 6e 74 73 20 74 6f 20 | 73 74 61 72 74 20 77 69 |ents to |start wi|
|00000740| 74 68 2e 22 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |th." (by|te-code |
|00000750| 22 09 18 08 40 1a c6 08 | 21 1b c7 1c c7 1d c8 08 |"...@...|!.......|
|00000760| 21 3f 85 30 00 0a 0c 42 | 89 14 88 0b 0d 42 89 15 |!?.0...B|.....B..|
|00000770| 88 c9 08 21 10 08 40 12 | c6 08 21 89 13 88 82 0d |...!..@.|..!.....|
|00000780| 00 88 ca cb 0c 21 cb 0d | 21 5c 22 2d 87 22 20 5b |.....!..|!\"-." [|
|00000790| 70 74 72 20 6c 69 73 74 | 20 74 68 69 73 20 6e 65 |ptr list| this ne|
|000007a0| 78 74 20 65 76 65 6e 73 | 20 6f 64 64 73 20 63 61 |xt evens| odds ca|
|000007b0| 64 72 20 6e 69 6c 20 65 | 6e 64 70 20 63 64 64 72 |dr nil e|ndp cddr|
|000007c0| 20 76 61 6c 75 65 73 20 | 6e 72 65 76 65 72 73 65 | values |nreverse|
|000007d0| 5d 20 39 29 29 0a 0a 28 | 64 65 66 75 6e 20 72 65 |] 9))..(|defun re|
|000007e0| 61 73 73 65 6d 62 6c 65 | 2d 61 72 67 73 6c 69 73 |assemble|-argslis|
|000007f0| 74 73 20 28 61 72 67 73 | 6c 69 73 74 73 29 20 22 |ts (args|lists) "|
|00000800| 5c 0a 28 72 65 61 73 73 | 65 6d 62 6c 65 2d 61 72 |\.(reass|emble-ar|
|00000810| 67 73 6c 69 73 74 73 20 | 41 52 47 53 4c 49 53 54 |gslists |ARGSLIST|
|00000820| 53 29 2e 0a 41 52 47 53 | 4c 49 53 54 53 20 69 73 |S)..ARGS|LISTS is|
|00000830| 20 61 20 6c 69 73 74 20 | 6f 66 20 73 65 71 75 65 | a list |of seque|
|00000840| 6e 63 65 73 2e 20 20 52 | 65 74 75 72 6e 20 61 20 |nces. R|eturn a |
|00000850| 6c 69 73 74 20 6f 66 20 | 6c 69 73 74 73 2c 20 74 |list of |lists, t|
|00000860| 68 65 20 66 69 72 73 74 | 0a 73 75 62 6c 69 73 74 |he first|.sublist|
|00000870| 20 62 65 69 6e 67 20 61 | 6c 6c 20 74 68 65 20 65 | being a|ll the e|
|00000880| 6e 74 72 69 65 73 20 63 | 6f 6d 69 6e 67 20 66 72 |ntries c|oming fr|
|00000890| 6f 6d 20 45 4c 54 20 30 | 20 6f 66 20 74 68 65 20 |om ELT 0| of the |
|000008a0| 6f 72 69 67 69 6e 61 6c | 0a 73 75 62 6c 69 73 74 |original|.sublist|
|000008b0| 73 2c 20 74 68 65 20 6e | 65 78 74 20 74 68 6f 73 |s, the n|ext thos|
|000008c0| 65 20 63 6f 6d 69 6e 67 | 20 66 72 6f 6d 20 45 4c |e coming| from EL|
|000008d0| 54 20 31 20 61 6e 64 20 | 73 6f 20 6f 6e 2c 20 75 |T 1 and |so on, u|
|000008e0| 6e 74 69 6c 20 74 68 65 | 0a 73 68 6f 72 74 65 73 |ntil the|.shortes|
|000008f0| 74 20 6c 69 73 74 20 69 | 73 20 65 78 68 61 75 73 |t list i|s exhaus|
|00000900| 74 65 64 2e 22 20 28 62 | 79 74 65 2d 63 6f 64 65 |ted." (b|yte-code|
|00000910| 20 22 c5 c6 c7 c8 09 5c | 22 5c 22 18 c9 1a 08 1b | ".....\|"\".....|
|00000920| ca 1c 0c 0b 59 3f 85 27 | 00 c7 cb 09 5c 22 0a 42 |....Y?.'|....\".B|
|00000930| 89 12 88 0c cc 5c 5c 89 | 14 88 82 0e 00 88 cd 0a |.....\\.|........|
|00000940| 21 29 29 2a 87 22 20 5b | 6d 69 6e 6c 65 6e 20 61 |!))*." [|minlen a|
|00000950| 72 67 73 6c 69 73 74 73 | 20 72 65 73 75 6c 74 20 |rgslists| result |
|00000960| 54 24 24 5f 32 20 69 20 | 61 70 70 6c 79 20 6d 69 |T$$_2 i |apply mi|
|00000970| 6e 20 6d 61 70 63 61 72 | 20 6c 65 6e 67 74 68 20 |n mapcar| length |
|00000980| 6e 69 6c 20 30 20 28 6c | 61 6d 62 64 61 20 28 73 |nil 0 (l|ambda (s|
|00000990| 75 62 6c 69 73 74 29 20 | 28 62 79 74 65 2d 63 6f |ublist) |(byte-co|
|000009a0| 64 65 20 22 c2 08 09 5c | 22 87 22 20 5b 73 75 62 |de "...\|"." [sub|
|000009b0| 6c 69 73 74 20 69 20 65 | 6c 74 5d 20 33 29 29 20 |list i e|lt] 3)) |
|000009c0| 31 20 6e 72 65 76 65 72 | 73 65 5d 20 36 29 29 0a |1 nrever|se] 6)).|
|000009d0| 0a 28 64 65 66 75 6e 20 | 62 75 69 6c 64 2d 6b 6c |.(defun |build-kl|
|000009e0| 69 73 74 20 28 61 72 67 | 73 6c 69 73 74 20 61 63 |ist (arg|slist ac|
|000009f0| 63 65 70 74 61 62 6c 65 | 29 20 22 5c 0a 44 65 63 |ceptable|) "\.Dec|
|00000a00| 6f 64 65 20 61 20 6b 65 | 79 77 6f 72 64 20 61 72 |ode a ke|yword ar|
|00000a10| 67 75 6d 65 6e 74 20 6c | 69 73 74 20 41 52 47 53 |gument l|ist ARGS|
|00000a20| 4c 49 53 54 20 66 6f 72 | 20 6b 65 79 77 6f 72 64 |LIST for| keyword|
|00000a30| 73 20 69 6e 20 41 43 43 | 45 50 54 41 42 4c 45 2e |s in ACC|EPTABLE.|
|00000a40| 0a 41 52 47 53 4c 49 53 | 54 20 69 73 20 61 20 6c |.ARGSLIS|T is a l|
|00000a50| 69 73 74 2c 20 70 72 65 | 73 75 6d 61 62 6c 79 20 |ist, pre|sumably |
|00000a60| 74 68 65 20 26 72 65 73 | 74 20 61 72 67 75 6d 65 |the &res|t argume|
|00000a70| 6e 74 20 6f 66 20 61 20 | 63 61 6c 6c 2c 20 77 68 |nt of a |call, wh|
|00000a80| 6f 73 65 0a 65 76 65 6e | 20 6e 75 6d 62 65 72 65 |ose.even| numbere|
|00000a90| 64 20 65 6c 65 6d 65 6e | 74 73 20 6d 75 73 74 20 |d elemen|ts must |
|00000aa0| 62 65 20 6b 65 79 77 6f | 72 64 73 2e 0a 41 43 43 |be keywo|rds..ACC|
|00000ab0| 45 50 54 41 42 4c 45 20 | 69 73 20 61 20 6c 69 73 |EPTABLE |is a lis|
|00000ac0| 74 20 6f 66 20 6b 65 79 | 77 6f 72 64 73 2c 20 74 |t of key|words, t|
|00000ad0| 68 65 20 6f 6e 6c 79 20 | 6f 6e 65 73 20 74 68 61 |he only |ones tha|
|00000ae0| 74 20 61 72 65 20 74 72 | 75 6c 79 20 61 63 63 65 |t are tr|uly acce|
|00000af0| 70 74 61 62 6c 65 2e 0a | 54 68 65 20 72 65 73 75 |ptable..|The resu|
|00000b00| 6c 74 20 69 73 20 61 6e | 20 61 6c 69 73 74 20 63 |lt is an| alist c|
|00000b10| 6f 6e 74 61 69 6e 69 6e | 67 20 74 68 65 20 61 72 |ontainin|g the ar|
|00000b20| 67 75 6d 65 6e 74 73 20 | 6e 61 6d 65 64 20 62 79 |guments |named by|
|00000b30| 20 74 68 65 20 6b 65 79 | 77 6f 72 64 73 0a 69 6e | the key|words.in|
|00000b40| 20 41 43 43 45 50 54 41 | 42 4c 45 2c 20 6f 72 20 | ACCEPTA|BLE, or |
|00000b50| 6e 69 6c 20 69 66 20 73 | 6f 6d 65 74 68 69 6e 67 |nil if s|omething|
|00000b60| 20 66 61 69 6c 65 64 2e | 22 20 28 62 79 74 65 2d | failed.|" (byte-|
|00000b70| 63 6f 64 65 20 22 08 3c | 85 09 00 ce 08 47 21 83 |code ".<|.....G!.|
|00000b80| 10 00 c1 82 13 00 cf d0 | 21 88 0a 3c 85 1d 00 d1 |........|!..<....|
|00000b90| d2 0a 5c 22 83 24 00 c1 | 82 27 00 cf d3 21 88 c1 |..\".$..|.'...!..|
|00000ba0| 89 14 88 d4 20 1d 0d d5 | 08 21 4c 88 0c 83 40 00 |.... ...|.!L...@.|
|00000bb0| d6 0e 06 21 82 4f 00 d7 | 89 14 88 0d 4a 43 89 16 |...!.O..|....JC..|
|00000bc0| 06 88 d6 0e 06 21 29 1b | d7 0b 38 1e 07 d8 0b 38 |.....!).|..8....8|
|00000bd0| 1e 08 d1 d2 0e 08 5c 22 | 83 67 00 c1 82 6e 00 cf |......\"|.g...n..|
|00000be0| d9 da 0e 08 21 5c 22 88 | db 0e 08 0e 07 5c 22 1e |....!\".|.....\".|
|00000bf0| 09 0a 1e 0a 0e 0a 40 1e | 0b c1 1e 0c c1 1e 0d dc |......@.|........|
|00000c00| 0e 0a 21 3f 85 b6 00 dd | 0e 0b 0e 09 5c 22 89 16 |..!?....|....\"..|
|00000c10| 0c 3f 83 9e 00 c1 82 a6 | 00 0e 0c 0e 0d 42 89 16 |.?......|.....B..|
|00000c20| 0d 88 0e 0a 41 16 0a 0e | 0a 40 89 16 0b 88 82 85 |....A...|.@......|
|00000c30| 00 88 0e 0d 2d 2b 87 22 | 20 5b 61 72 67 73 6c 69 |....-+."| [argsli|
|00000c40| 73 74 20 6e 69 6c 20 61 | 63 63 65 70 74 61 62 6c |st nil a|cceptabl|
|00000c50| 65 20 54 24 24 5f 33 20 | 2a 6d 76 61 6c 75 65 73 |e T$$_3 |*mvalues|
|00000c60| 2d 63 6f 75 6e 74 2a 20 | 69 74 20 2a 6d 76 61 6c |-count* |it *mval|
|00000c70| 75 65 73 2d 76 61 6c 75 | 65 73 2a 20 66 6f 72 6d |ues-valu|es* form|
|00000c80| 73 20 6b 65 79 77 6f 72 | 64 73 20 61 75 78 6c 69 |s keywor|ds auxli|
|00000c90| 73 74 20 70 74 72 20 74 | 68 69 73 20 61 75 78 76 |st ptr t|his auxv|
|00000ca0| 61 6c 20 61 6c 69 73 74 | 20 65 76 65 6e 70 20 65 |al alist| evenp e|
|00000cb0| 72 72 6f 72 20 22 4f 64 | 64 20 6e 75 6d 62 65 72 |rror "Od|d number|
|00000cc0| 20 6f 66 20 6b 65 79 77 | 6f 72 64 2d 61 72 67 73 | of keyw|ord-args|
|00000cd0| 22 20 65 76 65 72 79 20 | 6b 65 79 77 6f 72 64 70 |" every |keywordp|
|00000ce0| 20 22 53 65 63 6f 6e 64 | 20 61 72 67 20 73 68 6f | "Second| arg sho|
|00000cf0| 75 6c 64 20 62 65 20 61 | 20 6c 69 73 74 20 6f 66 |uld be a| list of|
|00000d00| 20 6b 65 79 77 6f 72 64 | 73 22 20 67 65 6e 73 79 | keyword|s" gensy|
|00000d10| 6d 20 75 6e 7a 69 70 2d | 6c 69 73 74 20 63 6f 70 |m unzip-|list cop|
|00000d20| 79 2d 73 65 71 75 65 6e | 63 65 20 31 20 30 20 22 |y-sequen|ce 1 0 "|
|00000d30| 45 78 70 65 63 74 65 64 | 20 6b 65 79 77 6f 72 64 |Expected| keyword|
|00000d40| 73 2c 20 66 6f 75 6e 64 | 20 60 25 73 27 22 20 70 |s, found| `%s'" p|
|00000d50| 72 69 6e 31 2d 74 6f 2d | 73 74 72 69 6e 67 20 70 |rin1-to-|string p|
|00000d60| 61 69 72 6c 69 73 20 65 | 6e 64 70 20 61 73 73 6f |airlis e|ndp asso|
|00000d70| 63 5d 20 31 37 29 29 0a | 0a 28 64 65 66 75 6e 20 |c] 17)).|.(defun |
|00000d80| 64 75 70 6c 69 63 61 74 | 65 2d 73 79 6d 62 6f 6c |duplicat|e-symbol|
|00000d90| 73 2d 70 20 28 6c 69 73 | 74 29 20 22 5c 0a 46 69 |s-p (lis|t) "\.Fi|
|00000da0| 6e 64 20 61 6c 6c 20 73 | 79 6d 62 6f 6c 73 20 61 |nd all s|ymbols a|
|00000db0| 70 70 65 61 72 69 6e 67 | 20 6d 6f 72 65 20 74 68 |ppearing| more th|
|00000dc0| 61 6e 20 6f 6e 63 65 20 | 69 6e 20 4c 49 53 54 2e |an once |in LIST.|
|00000dd0| 0a 52 65 74 75 72 6e 20 | 61 20 6c 69 73 74 20 6f |.Return |a list o|
|00000de0| 66 20 61 6c 6c 20 73 75 | 63 68 20 64 75 70 6c 69 |f all su|ch dupli|
|00000df0| 63 61 74 65 73 3b 20 60 | 6e 69 6c 27 20 69 66 20 |cates; `|nil' if |
|00000e00| 74 68 65 72 65 20 61 72 | 65 20 6e 6f 20 64 75 70 |there ar|e no dup|
|00000e10| 6c 69 63 61 74 65 73 2e | 22 20 28 62 79 74 65 2d |licates.|" (byte-|
|00000e20| 63 6f 64 65 20 22 c3 c5 | 20 19 18 0a 3c 85 0e 00 |code "..| ...<...|
|00000e30| c6 c7 0a 5c 22 83 15 00 | c3 82 18 00 c8 c9 21 88 |...\"...|......!.|
|00000e40| ca cb 0a 5c 22 88 c3 1c | c3 29 88 ca cc 0a 5c 22 |...\"...|.)....\"|
|00000e50| 88 c3 1c c3 29 88 ca cd | 0a 5c 22 88 c3 1c c3 29 |....)...|.\"....)|
|00000e60| 88 08 2a 87 22 20 5b 64 | 75 70 6c 69 63 61 74 65 |..*." [d|uplicate|
|00000e70| 73 20 70 72 6f 70 6e 61 | 6d 65 20 6c 69 73 74 20 |s propna|me list |
|00000e80| 6e 69 6c 20 78 20 67 65 | 6e 73 79 6d 20 65 76 65 |nil x ge|nsym eve|
|00000e90| 72 79 20 73 79 6d 62 6f | 6c 70 20 65 72 72 6f 72 |ry symbo|lp error|
|00000ea0| 20 22 41 20 6c 69 73 74 | 20 6f 66 20 73 79 6d 62 | "A list| of symb|
|00000eb0| 6f 6c 73 20 69 73 20 6e | 65 65 64 65 64 22 20 6d |ols is n|eeded" m|
|00000ec0| 61 70 63 61 72 20 28 6c | 61 6d 62 64 61 20 28 78 |apcar (l|ambda (x|
|00000ed0| 29 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 c2 08 |) (byte-|code "..|
|00000ee0| 09 c3 23 87 22 20 5b 78 | 20 70 72 6f 70 6e 61 6d |..#." [x| propnam|
|00000ef0| 65 20 70 75 74 20 30 5d | 20 34 29 29 20 28 6c 61 |e put 0]| 4)) (la|
|00000f00| 6d 62 64 61 20 28 78 29 | 20 28 62 79 74 65 2d 63 |mbda (x)| (byte-c|
|00000f10| 6f 64 65 20 22 c2 08 09 | 08 09 4e 54 23 87 22 20 |ode "...|..NT#." |
|00000f20| 5b 78 20 70 72 6f 70 6e | 61 6d 65 20 70 75 74 5d |[x propn|ame put]|
|00000f30| 20 35 29 29 20 28 6c 61 | 6d 62 64 61 20 28 78 29 | 5)) (la|mbda (x)|
|00000f40| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 08 09 4e | (byte-c|ode "..N|
|00000f50| c3 56 85 0d 00 08 0a 42 | 89 12 87 22 20 5b 78 20 |.V.....B|..." [x |
|00000f60| 70 72 6f 70 6e 61 6d 65 | 20 64 75 70 6c 69 63 61 |propname| duplica|
|00000f70| 74 65 73 20 31 5d 20 32 | 29 29 5d 20 38 29 29 0a |tes 1] 2|))] 8)).|
|00000f80| 0a 28 64 65 66 6d 61 63 | 72 6f 20 64 65 66 6b 65 |.(defmac|ro defke|
|00000f90| 79 77 6f 72 64 20 28 78 | 20 26 6f 70 74 69 6f 6e |yword (x| &option|
|00000fa0| 61 6c 20 64 6f 63 73 74 | 72 69 6e 67 29 20 22 4d |al docst|ring) "M|
|00000fb0| 61 6b 65 20 73 79 6d 62 | 6f 6c 20 58 20 61 20 6b |ake symb|ol X a k|
|00000fc0| 65 79 77 6f 72 64 20 28 | 73 79 6d 62 6f 6c 20 77 |eyword (|symbol w|
|00000fd0| 68 6f 73 65 20 76 61 6c | 75 65 20 69 73 20 69 74 |hose val|ue is it|
|00000fe0| 73 65 6c 66 29 2e 0a 4f | 70 74 69 6f 6e 61 6c 20 |self)..O|ptional |
|00000ff0| 73 65 63 6f 6e 64 20 61 | 72 67 75 6d 65 6e 74 20 |second a|rgument |
|00001000| 69 73 20 61 20 64 6f 63 | 75 6d 65 6e 74 61 74 69 |is a doc|umentati|
|00001010| 6f 6e 20 73 74 72 69 6e | 67 20 66 6f 72 20 69 74 |on strin|g for it|
|00001020| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 08 |." (byte|-code ".|
|00001030| 39 83 0e 00 c2 08 c3 08 | 44 45 82 14 00 c4 c5 c6 |9.......|DE......|
|00001040| 08 21 5c 22 87 22 20 5b | 78 20 74 20 64 65 66 63 |.!\"." [|x t defc|
|00001050| 6f 6e 73 74 20 71 75 6f | 74 65 20 65 72 72 6f 72 |onst quo|te error|
|00001060| 20 22 60 25 73 27 20 69 | 73 20 6e 6f 74 20 61 20 | "`%s' i|s not a |
|00001070| 73 79 6d 62 6f 6c 22 20 | 70 72 69 6e 31 2d 74 6f |symbol" |prin1-to|
|00001080| 2d 73 74 72 69 6e 67 5d | 20 34 29 29 0a 0a 28 64 |-string]| 4))..(d|
|00001090| 65 66 75 6e 20 6b 65 79 | 77 6f 72 64 70 20 28 73 |efun key|wordp (s|
|000010a0| 79 6d 29 20 22 5c 0a 52 | 65 74 75 72 6e 20 60 74 |ym) "\.R|eturn `t|
|000010b0| 27 20 69 66 20 53 59 4d | 20 69 73 20 61 20 6b 65 |' if SYM| is a ke|
|000010c0| 79 77 6f 72 64 2e 22 20 | 28 62 79 74 65 2d 63 6f |yword." |(byte-co|
|000010d0| 64 65 20 22 08 39 85 0d | 00 c3 c4 08 21 c5 48 c6 |de ".9..|....!.H.|
|000010e0| 5c 22 83 16 00 08 08 4c | 82 17 00 c2 87 22 20 5b |\".....L|....." [|
|000010f0| 73 79 6d 20 74 20 6e 69 | 6c 20 63 68 61 72 2d 65 |sym t ni|l char-e|
|00001100| 71 75 61 6c 20 73 79 6d | 62 6f 6c 2d 6e 61 6d 65 |qual sym|bol-name|
|00001110| 20 30 20 35 38 5d 20 34 | 29 29 0a 0a 28 64 65 66 | 0 58] 4|))..(def|
|00001120| 75 6e 20 6b 65 79 77 6f | 72 64 2d 6f 66 20 28 73 |un keywo|rd-of (s|
|00001130| 79 6d 29 20 22 5c 0a 52 | 65 74 75 72 6e 20 61 20 |ym) "\.R|eturn a |
|00001140| 6b 65 79 77 6f 72 64 20 | 74 68 61 74 20 69 73 20 |keyword |that is |
|00001150| 6e 61 74 75 72 61 6c 6c | 79 20 61 73 73 6f 63 69 |naturall|y associ|
|00001160| 61 74 65 64 20 77 69 74 | 68 20 73 79 6d 62 6f 6c |ated wit|h symbol|
|00001170| 20 53 59 4d 2e 0a 49 66 | 20 53 59 4d 20 69 73 20 | SYM..If| SYM is |
|00001180| 6b 65 79 77 6f 72 64 2c | 20 74 68 65 20 76 61 6c |keyword,| the val|
|00001190| 75 65 20 69 73 20 53 59 | 4d 2e 0a 4f 74 68 65 72 |ue is SY|M..Other|
|000011a0| 77 69 73 65 20 69 74 20 | 69 73 20 61 20 6b 65 79 |wise it |is a key|
|000011b0| 77 6f 72 64 20 77 68 6f | 73 65 20 6e 61 6d 65 20 |word who|se name |
|000011c0| 69 73 20 60 3a 27 20 66 | 6f 6c 6c 6f 77 65 64 20 |is `:' f|ollowed |
|000011d0| 62 79 20 53 59 4d 27 73 | 20 6e 61 6d 65 2e 22 20 |by SYM's| name." |
|000011e0| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c3 08 21 83 |(byte-co|de "..!.|
|000011f0| 0a 00 08 82 24 00 08 39 | 83 1e 00 c4 c5 c6 08 21 |....$..9|.......!|
|00001200| 50 21 19 09 09 4c 29 82 | 24 00 c7 c8 c9 08 21 5c |P!...L).|$.....!\|
|00001210| 22 87 22 20 5b 73 79 6d | 20 6e 65 77 73 79 6d 20 |"." [sym| newsym |
|00001220| 74 20 6b 65 79 77 6f 72 | 64 70 20 69 6e 74 65 72 |t keywor|dp inter|
|00001230| 6e 20 22 3a 22 20 73 79 | 6d 62 6f 6c 2d 6e 61 6d |n ":" sy|mbol-nam|
|00001240| 65 20 65 72 72 6f 72 20 | 22 45 78 70 65 63 74 65 |e error |"Expecte|
|00001250| 64 20 61 20 73 79 6d 62 | 6f 6c 2c 20 6e 6f 74 20 |d a symb|ol, not |
|00001260| 60 25 73 27 22 20 70 72 | 69 6e 31 2d 74 6f 2d 73 |`%s'" pr|in1-to-s|
|00001270| 74 72 69 6e 67 5d 20 37 | 29 29 0a 0a 28 64 65 66 |tring] 7|))..(def|
|00001280| 76 61 72 20 2a 67 65 6e | 74 65 6d 70 2d 69 6e 64 |var *gen|temp-ind|
|00001290| 65 78 2a 20 30 20 22 5c | 0a 49 6e 74 65 67 65 72 |ex* 0 "\|.Integer|
|000012a0| 20 75 73 65 64 20 62 79 | 20 67 65 6e 74 65 6d 70 | used by| gentemp|
|000012b0| 20 74 6f 20 70 72 6f 64 | 75 63 65 20 6e 65 77 20 | to prod|uce new |
|000012c0| 6e 61 6d 65 73 2e 22 29 | 0a 0a 28 64 65 66 76 61 |names.")|..(defva|
|000012d0| 72 20 2a 67 65 6e 74 65 | 6d 70 2d 70 72 65 66 69 |r *gente|mp-prefi|
|000012e0| 78 2a 20 22 54 24 24 5f | 22 20 22 5c 0a 4e 61 6d |x* "T$$_|" "\.Nam|
|000012f0| 65 73 20 67 65 6e 65 72 | 61 74 65 64 20 62 79 20 |es gener|ated by |
|00001300| 67 65 6e 74 65 6d 70 20 | 62 65 67 69 6e 20 77 69 |gentemp |begin wi|
|00001310| 74 68 20 74 68 69 73 20 | 73 74 72 69 6e 67 20 62 |th this |string b|
|00001320| 79 20 64 65 66 61 75 6c | 74 2e 22 29 0a 0a 28 64 |y defaul|t.")..(d|
|00001330| 65 66 75 6e 20 67 65 6e | 74 65 6d 70 20 28 26 6f |efun gen|temp (&o|
|00001340| 70 74 69 6f 6e 61 6c 20 | 70 72 65 66 69 78 20 6f |ptional |prefix o|
|00001350| 62 6c 69 73 74 29 20 22 | 5c 0a 47 65 6e 65 72 61 |blist) "|\.Genera|
|00001360| 74 65 20 61 20 66 72 65 | 73 68 20 69 6e 74 65 72 |te a fre|sh inter|
|00001370| 6e 65 64 20 73 79 6d 62 | 6f 6c 2e 0a 54 68 65 72 |ned symb|ol..Ther|
|00001380| 65 20 61 72 65 20 32 20 | 6f 70 74 69 6f 6e 61 6c |e are 2 |optional|
|00001390| 20 61 72 67 75 6d 65 6e | 74 73 2c 20 50 52 45 46 | argumen|ts, PREF|
|000013a0| 49 58 20 61 6e 64 20 4f | 42 4c 49 53 54 2e 20 20 |IX and O|BLIST. |
|000013b0| 50 52 45 46 49 58 20 69 | 73 20 74 68 65 0a 73 74 |PREFIX i|s the.st|
|000013c0| 72 69 6e 67 20 74 68 61 | 74 20 62 65 67 69 6e 73 |ring tha|t begins|
|000013d0| 20 74 68 65 20 6e 65 77 | 20 6e 61 6d 65 2c 20 4f | the new| name, O|
|000013e0| 42 4c 49 53 54 20 69 73 | 20 74 68 65 20 6f 62 61 |BLIST is| the oba|
|000013f0| 72 72 61 79 20 75 73 65 | 64 20 74 6f 20 73 65 61 |rray use|d to sea|
|00001400| 72 63 68 20 66 6f 72 0a | 6f 6c 64 20 6e 61 6d 65 |rch for.|old name|
|00001410| 73 2e 20 20 54 68 65 20 | 64 65 66 61 75 6c 74 73 |s. The |defaults|
|00001420| 20 61 72 65 20 6a 75 73 | 74 20 72 69 67 68 74 2c | are jus|t right,|
|00001430| 20 59 4f 55 20 53 48 4f | 55 4c 44 20 4e 45 56 45 | YOU SHO|ULD NEVE|
|00001440| 52 20 4e 45 45 44 20 54 | 48 45 53 45 0a 41 52 47 |R NEED T|HESE.ARG|
|00001450| 55 4d 45 4e 54 53 20 49 | 4e 20 59 4f 55 52 20 4f |UMENTS I|N YOUR O|
|00001460| 57 4e 20 43 4f 44 45 2e | 22 20 28 62 79 74 65 2d |WN CODE.|" (byte-|
|00001470| 63 6f 64 65 20 22 08 3f | 85 08 00 09 89 10 88 0a |code ".?|........|
|00001480| 3f 85 11 00 0b 89 12 88 | c5 c5 1e 06 1c 0c 3f 85 |?.......|......?.|
|00001490| 40 00 08 0e 07 50 89 16 | 06 88 0e 07 c8 5c 5c 89 |@....P..|.....\\.|
|000014a0| 16 07 88 c9 0e 06 0a 5c | 22 3f 85 3c 00 ca 0e 06 |.......\|"?.<....|
|000014b0| 0a 5c 22 89 14 88 82 17 | 00 88 0c 2a 87 22 20 5b |.\".....|...*." [|
|000014c0| 70 72 65 66 69 78 20 2a | 67 65 6e 74 65 6d 70 2d |prefix *|gentemp-|
|000014d0| 70 72 65 66 69 78 2a 20 | 6f 62 6c 69 73 74 20 6f |prefix* |oblist o|
|000014e0| 62 61 72 72 61 79 20 6e | 65 77 73 79 6d 62 6f 6c |barray n|ewsymbol|
|000014f0| 20 6e 69 6c 20 6e 65 77 | 6e 61 6d 65 20 2a 67 65 | nil new|name *ge|
|00001500| 6e 74 65 6d 70 2d 69 6e | 64 65 78 2a 20 31 20 69 |ntemp-in|dex* 1 i|
|00001510| 6e 74 65 72 6e 2d 73 6f | 66 74 20 69 6e 74 65 72 |ntern-so|ft inter|
|00001520| 6e 5d 20 35 29 29 0a 0a | 28 64 65 66 76 61 72 20 |n] 5))..|(defvar |
|00001530| 2a 67 65 6e 73 79 6d 2d | 69 6e 64 65 78 2a 20 30 |*gensym-|index* 0|
|00001540| 20 22 5c 0a 49 6e 74 65 | 67 65 72 20 75 73 65 64 | "\.Inte|ger used|
|00001550| 20 62 79 20 67 65 6e 73 | 79 6d 20 74 6f 20 70 72 | by gens|ym to pr|
|00001560| 6f 64 75 63 65 20 6e 65 | 77 20 6e 61 6d 65 73 2e |oduce ne|w names.|
|00001570| 22 29 0a 0a 28 64 65 66 | 76 61 72 20 2a 67 65 6e |")..(def|var *gen|
|00001580| 73 79 6d 2d 70 72 65 66 | 69 78 2a 20 22 47 24 24 |sym-pref|ix* "G$$|
|00001590| 5f 22 20 22 5c 0a 4e 61 | 6d 65 73 20 67 65 6e 65 |_" "\.Na|mes gene|
|000015a0| 72 61 74 65 64 20 62 79 | 20 67 65 6e 73 79 6d 20 |rated by| gensym |
|000015b0| 62 65 67 69 6e 20 77 69 | 74 68 20 74 68 69 73 20 |begin wi|th this |
|000015c0| 73 74 72 69 6e 67 20 62 | 79 20 64 65 66 61 75 6c |string b|y defaul|
|000015d0| 74 2e 22 29 0a 0a 28 64 | 65 66 75 6e 20 67 65 6e |t.")..(d|efun gen|
|000015e0| 73 79 6d 20 28 26 6f 70 | 74 69 6f 6e 61 6c 20 70 |sym (&op|tional p|
|000015f0| 72 65 66 69 78 29 20 22 | 5c 0a 47 65 6e 65 72 61 |refix) "|\.Genera|
|00001600| 74 65 20 61 20 66 72 65 | 73 68 20 75 6e 69 6e 74 |te a fre|sh unint|
|00001610| 65 72 6e 65 64 20 73 79 | 6d 62 6f 6c 2e 0a 54 68 |erned sy|mbol..Th|
|00001620| 65 72 65 20 69 73 20 61 | 6e 20 20 6f 70 74 69 6f |ere is a|n optio|
|00001630| 6e 61 6c 20 61 72 67 75 | 6d 65 6e 74 2c 20 50 52 |nal argu|ment, PR|
|00001640| 45 46 49 58 2e 20 20 50 | 52 45 46 49 58 20 69 73 |EFIX. P|REFIX is|
|00001650| 20 74 68 65 0a 73 74 72 | 69 6e 67 20 74 68 61 74 | the.str|ing that|
|00001660| 20 62 65 67 69 6e 73 20 | 74 68 65 20 6e 65 77 20 | begins |the new |
|00001670| 6e 61 6d 65 2e 20 4d 6f | 73 74 20 70 65 6f 70 6c |name. Mo|st peopl|
|00001680| 65 20 74 61 6b 65 20 6a | 75 73 74 20 74 68 65 20 |e take j|ust the |
|00001690| 64 65 66 61 75 6c 74 2c | 0a 65 78 63 65 70 74 20 |default,|.except |
|000016a0| 77 68 65 6e 20 64 65 62 | 75 67 67 69 6e 67 20 6e |when deb|ugging n|
|000016b0| 65 65 64 73 20 73 75 67 | 67 65 73 74 20 6f 74 68 |eeds sug|gest oth|
|000016c0| 65 72 77 69 73 65 2e 22 | 20 28 62 79 74 65 2d 63 |erwise."| (byte-c|
|000016d0| 6f 64 65 20 22 08 3f 85 | 08 00 09 89 10 88 c3 c6 |ode ".?.|........|
|000016e0| 1c 1a 0a 3f 85 2e 00 08 | 0d 50 89 14 88 0d c7 5c |...?....|.P.....\|
|000016f0| 5c 89 15 88 c8 0c 21 3f | 85 2a 00 c9 0c 21 89 12 |\.....!?|.*...!..|
|00001700| 88 82 0d 00 88 0a 2a 87 | 22 20 5b 70 72 65 66 69 |......*.|" [prefi|
|00001710| 78 20 2a 67 65 6e 73 79 | 6d 2d 70 72 65 66 69 78 |x *gensy|m-prefix|
|00001720| 2a 20 6e 65 77 73 79 6d | 62 6f 6c 20 6e 69 6c 20 |* newsym|bol nil |
|00001730| 6e 65 77 6e 61 6d 65 20 | 2a 67 65 6e 73 79 6d 2d |newname |*gensym-|
|00001740| 69 6e 64 65 78 2a 20 22 | 22 20 31 20 69 6e 74 65 |index* "|" 1 inte|
|00001750| 72 6e 2d 73 6f 66 74 20 | 6d 61 6b 65 2d 73 79 6d |rn-soft |make-sym|
|00001760| 62 6f 6c 5d 20 35 29 29 | 0a 0a 28 70 75 74 20 28 |bol] 5))|..(put (|
|00001770| 71 75 6f 74 65 20 63 61 | 73 65 29 20 28 71 75 6f |quote ca|se) (quo|
|00001780| 74 65 20 6c 69 73 70 2d | 69 6e 64 65 6e 74 2d 68 |te lisp-|indent-h|
|00001790| 6f 6f 6b 29 20 31 29 0a | 0a 28 70 75 74 20 28 71 |ook) 1).|.(put (q|
|000017a0| 75 6f 74 65 20 65 63 61 | 73 65 29 20 28 71 75 6f |uote eca|se) (quo|
|000017b0| 74 65 20 6c 69 73 70 2d | 69 6e 64 65 6e 74 2d 68 |te lisp-|indent-h|
|000017c0| 6f 6f 6b 29 20 31 29 0a | 0a 28 70 75 74 20 28 71 |ook) 1).|.(put (q|
|000017d0| 75 6f 74 65 20 77 68 65 | 6e 29 20 28 71 75 6f 74 |uote whe|n) (quot|
|000017e0| 65 20 6c 69 73 70 2d 69 | 6e 64 65 6e 74 2d 68 6f |e lisp-i|ndent-ho|
|000017f0| 6f 6b 29 20 31 29 0a 0a | 28 70 75 74 20 28 71 75 |ok) 1)..|(put (qu|
|00001800| 6f 74 65 20 75 6e 6c 65 | 73 73 29 20 28 71 75 6f |ote unle|ss) (quo|
|00001810| 74 65 20 6c 69 73 70 2d | 69 6e 64 65 6e 74 2d 68 |te lisp-|indent-h|
|00001820| 6f 6f 6b 29 20 31 29 0a | 0a 28 64 65 66 6d 61 63 |ook) 1).|.(defmac|
|00001830| 72 6f 20 77 68 65 6e 20 | 28 63 6f 6e 64 69 74 69 |ro when |(conditi|
|00001840| 6f 6e 20 26 72 65 73 74 | 20 62 6f 64 79 29 20 22 |on &rest| body) "|
|00001850| 28 77 68 65 6e 20 43 4f | 4e 44 49 54 49 4f 4e 20 |(when CO|NDITION |
|00001860| 2e 20 42 4f 44 59 29 20 | 3d 3e 20 65 76 61 6c 75 |. BODY) |=> evalu|
|00001870| 61 74 65 20 42 4f 44 59 | 20 69 66 20 43 4f 4e 44 |ate BODY| if COND|
|00001880| 49 54 49 4f 4e 20 69 73 | 20 74 72 75 65 2e 22 20 |ITION is| true." |
|00001890| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c2 c3 c4 08 |(byte-co|de "....|
|000018a0| 44 c5 09 24 87 22 20 5b | 63 6f 6e 64 69 74 69 6f |D..$." [|conditio|
|000018b0| 6e 20 62 6f 64 79 20 6c | 69 73 74 2a 20 69 66 20 |n body l|ist* if |
|000018c0| 6e 6f 74 20 6e 69 6c 5d | 20 35 29 29 0a 0a 28 64 |not nil]| 5))..(d|
|000018d0| 65 66 6d 61 63 72 6f 20 | 75 6e 6c 65 73 73 20 28 |efmacro |unless (|
|000018e0| 63 6f 6e 64 69 74 69 6f | 6e 20 26 72 65 73 74 20 |conditio|n &rest |
|000018f0| 62 6f 64 79 29 20 22 28 | 75 6e 6c 65 73 73 20 43 |body) "(|unless C|
|00001900| 4f 4e 44 49 54 49 4f 4e | 20 2e 20 42 4f 44 59 29 |ONDITION| . BODY)|
|00001910| 20 3d 3e 20 65 76 61 6c | 75 61 74 65 20 42 4f 44 | => eval|uate BOD|
|00001920| 59 20 69 66 20 43 4f 4e | 44 49 54 49 4f 4e 20 69 |Y if CON|DITION i|
|00001930| 73 20 66 61 6c 73 65 2e | 22 20 28 62 79 74 65 2d |s false.|" (byte-|
|00001940| 63 6f 64 65 20 22 c2 c3 | 08 c4 09 24 87 22 20 5b |code "..|...$." [|
|00001950| 63 6f 6e 64 69 74 69 6f | 6e 20 62 6f 64 79 20 6c |conditio|n body l|
|00001960| 69 73 74 2a 20 69 66 20 | 6e 69 6c 5d 20 35 29 29 |ist* if |nil] 5))|
|00001970| 0a 0a 28 64 65 66 6d 61 | 63 72 6f 20 63 61 73 65 |..(defma|cro case|
|00001980| 20 28 65 78 70 72 20 26 | 72 65 73 74 20 63 61 73 | (expr &|rest cas|
|00001990| 65 73 29 20 22 28 63 61 | 73 65 20 45 58 50 52 20 |es) "(ca|se EXPR |
|000019a0| 2e 20 43 41 53 45 53 29 | 20 3d 3e 20 65 76 61 6c |. CASES)| => eval|
|000019b0| 73 20 45 58 50 52 2c 20 | 63 68 6f 6f 73 65 73 20 |s EXPR, |chooses |
|000019c0| 66 72 6f 6d 20 43 41 53 | 45 53 20 6f 6e 20 74 68 |from CAS|ES on th|
|000019d0| 61 74 20 76 61 6c 75 65 | 2e 0a 45 58 50 52 20 20 |at value|..EXPR |
|000019e0| 20 2d 3e 20 61 6e 79 20 | 66 6f 72 6d 0a 43 41 53 | -> any |form.CAS|
|000019f0| 45 53 20 20 2d 3e 20 6c | 69 73 74 20 6f 66 20 63 |ES -> l|ist of c|
|00001a00| 6c 61 75 73 65 73 2c 20 | 6e 6f 6e 20 65 6d 70 74 |lauses, |non empt|
|00001a10| 79 0a 43 4c 41 55 53 45 | 20 2d 3e 20 48 45 41 44 |y.CLAUSE| -> HEAD|
|00001a20| 20 2e 20 42 4f 44 59 0a | 48 45 41 44 20 20 20 2d | . BODY.|HEAD -|
|00001a30| 3e 20 74 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |> t | |
|00001a40| 3d 20 63 61 74 63 68 20 | 61 6c 6c 2c 20 6d 75 73 |= catch |all, mus|
|00001a50| 74 20 62 65 20 6c 61 73 | 74 20 63 6c 61 75 73 65 |t be las|t clause|
|00001a60| 0a 20 20 20 20 20 20 20 | 2d 3e 20 6f 74 68 65 72 |. |-> other|
|00001a70| 77 69 73 65 20 20 20 20 | 20 3d 20 73 61 6d 65 20 |wise | = same |
|00001a80| 61 73 20 74 0a 20 20 20 | 20 20 20 20 2d 3e 20 6e |as t. | -> n|
|00001a90| 69 6c 20 20 20 20 20 20 | 20 20 20 20 20 3d 20 69 |il | = i|
|00001aa0| 6c 6c 65 67 61 6c 0a 20 | 20 20 20 20 20 20 2d 3e |llegal. | ->|
|00001ab0| 20 61 74 6f 6d 20 20 20 | 20 20 20 20 20 20 20 3d | atom | =|
|00001ac0| 20 61 63 74 69 76 61 74 | 65 64 20 69 66 20 28 65 | activat|ed if (e|
|00001ad0| 71 6c 20 20 45 58 50 52 | 20 48 45 41 44 29 0a 20 |ql EXPR| HEAD). |
|00001ae0| 20 20 20 20 20 20 2d 3e | 20 6c 69 73 74 20 6f 66 | ->| list of|
|00001af0| 20 61 74 6f 6d 73 20 3d | 20 61 63 74 69 76 61 74 | atoms =| activat|
|00001b00| 65 64 20 69 66 20 28 6d | 65 6d 62 65 72 20 45 58 |ed if (m|ember EX|
|00001b10| 50 52 20 48 45 41 44 29 | 0a 42 4f 44 59 20 20 20 |PR HEAD)|.BODY |
|00001b20| 2d 3e 20 6c 69 73 74 20 | 6f 66 20 66 6f 72 6d 73 |-> list |of forms|
|00001b30| 2c 20 69 6d 70 6c 69 63 | 69 74 20 50 52 4f 47 4e |, implic|it PROGN|
|00001b40| 20 69 73 20 62 75 69 6c | 74 20 61 72 6f 75 6e 64 | is buil|t around|
|00001b50| 20 69 74 2e 0a 45 58 50 | 52 20 69 73 20 65 76 61 | it..EXP|R is eva|
|00001b60| 6c 75 61 74 65 64 20 6f | 6e 6c 79 20 6f 6e 63 65 |luated o|nly once|
|00001b70| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 c4 |." (byte|-code ".|
|00001b80| 20 18 c5 0a 08 5c 22 19 | c6 08 0b 44 43 c7 c8 c9 | ....\".|...DC...|
|00001b90| 09 21 5c 22 45 2a 87 22 | 20 5b 6e 65 77 73 79 6d |.!\"E*."| [newsym|
|00001ba0| 20 63 6c 61 75 73 65 73 | 20 63 61 73 65 73 20 65 | clauses| cases e|
|00001bb0| 78 70 72 20 67 65 6e 74 | 65 6d 70 20 63 61 73 65 |xpr gent|emp case|
|00001bc0| 2d 63 6c 61 75 73 69 66 | 79 20 6c 65 74 20 6c 69 |-clausif|y let li|
|00001bd0| 73 74 2a 20 63 6f 6e 64 | 20 6e 72 65 76 65 72 73 |st* cond| nrevers|
|00001be0| 65 5d 20 38 29 29 0a 0a | 28 64 65 66 6d 61 63 72 |e] 8))..|(defmacr|
|00001bf0| 6f 20 65 63 61 73 65 20 | 28 65 78 70 72 20 26 72 |o ecase |(expr &r|
|00001c00| 65 73 74 20 63 61 73 65 | 73 29 20 22 28 65 63 61 |est case|s) "(eca|
|00001c10| 73 65 20 45 58 50 52 20 | 2e 20 43 41 53 45 53 29 |se EXPR |. CASES)|
|00001c20| 20 3d 3e 20 6c 69 6b 65 | 20 60 63 61 73 65 27 2c | => like| `case',|
|00001c30| 20 62 75 74 20 65 72 72 | 6f 72 20 69 66 20 6e 6f | but err|or if no|
|00001c40| 20 63 61 73 65 20 66 69 | 74 73 2e 0a 60 74 27 2d | case fi|ts..`t'-|
|00001c50| 63 6c 61 75 73 65 73 20 | 61 72 65 20 6e 6f 74 20 |clauses |are not |
|00001c60| 61 6c 6c 6f 77 65 64 2e | 22 20 28 62 79 74 65 2d |allowed.|" (byte-|
|00001c70| 63 6f 64 65 20 22 c5 20 | 18 c6 0a 08 5c 22 19 c7 |code ". |....\"..|
|00001c80| 09 21 c3 3d 85 13 00 c8 | c9 21 88 c3 c8 ca cb 0c |.!.=....|.!......|
|00001c90| 44 cc 08 44 46 44 09 42 | 89 11 88 cd 08 0c 44 43 |D..DFD.B|......DC|
|00001ca0| ce cf d0 09 21 5c 22 45 | 2a 87 22 20 5b 6e 65 77 |....!\"E|*." [new|
|00001cb0| 73 79 6d 20 63 6c 61 75 | 73 65 73 20 63 61 73 65 |sym clau|ses case|
|00001cc0| 73 20 74 20 65 78 70 72 | 20 67 65 6e 74 65 6d 70 |s t expr| gentemp|
|00001cd0| 20 63 61 73 65 2d 63 6c | 61 75 73 69 66 79 20 63 | case-cl|ausify c|
|00001ce0| 61 61 72 20 65 72 72 6f | 72 20 22 4e 6f 20 63 6c |aar erro|r "No cl|
|00001cf0| 61 75 73 65 2d 68 65 61 | 64 20 73 68 6f 75 6c 64 |ause-hea|d should|
|00001d00| 20 62 65 20 60 74 27 20 | 6f 72 20 60 6f 74 68 65 | be `t' |or `othe|
|00001d10| 72 77 69 73 65 27 20 66 | 6f 72 20 60 65 63 61 73 |rwise' f|or `ecas|
|00001d20| 65 27 22 20 22 65 63 61 | 73 65 20 6f 6e 20 25 73 |e'" "eca|se on %s|
|00001d30| 20 3d 20 25 73 20 66 61 | 69 6c 65 64 20 74 6f 20 | = %s fa|iled to |
|00001d40| 74 61 6b 65 20 61 6e 79 | 20 62 72 61 6e 63 68 2e |take any| branch.|
|00001d50| 22 20 71 75 6f 74 65 20 | 70 72 69 6e 31 2d 74 6f |" quote |prin1-to|
|00001d60| 2d 73 74 72 69 6e 67 20 | 6c 65 74 20 6c 69 73 74 |-string |let list|
|00001d70| 2a 20 63 6f 6e 64 20 6e | 72 65 76 65 72 73 65 5d |* cond n|reverse]|
|00001d80| 20 31 30 29 29 0a 0a 28 | 64 65 66 75 6e 20 63 61 | 10))..(|defun ca|
|00001d90| 73 65 2d 63 6c 61 75 73 | 69 66 79 20 28 63 61 73 |se-claus|ify (cas|
|00001da0| 65 73 20 6e 65 77 73 79 | 6d 29 20 22 5c 0a 43 41 |es newsy|m) "\.CA|
|00001db0| 53 45 2d 43 4c 41 55 53 | 49 46 59 20 43 41 53 45 |SE-CLAUS|IFY CASE|
|00001dc0| 53 20 4e 45 57 53 59 4d | 20 3d 3e 20 63 6c 61 75 |S NEWSYM| => clau|
|00001dd0| 73 65 73 20 66 6f 72 20 | 61 20 27 63 6f 6e 64 27 |ses for |a 'cond'|
|00001de0| 0a 43 6f 6e 76 65 72 74 | 73 20 74 68 65 20 43 41 |.Convert|s the CA|
|00001df0| 53 45 53 20 6f 66 20 61 | 20 5b 65 5d 63 61 73 65 |SES of a| [e]case|
|00001e00| 20 6d 61 63 72 6f 20 69 | 6e 74 6f 20 63 6f 6e 64 | macro i|nto cond|
|00001e10| 20 63 6c 61 75 73 65 73 | 20 74 6f 20 62 65 0a 65 | clauses| to be.e|
|00001e20| 76 61 6c 75 61 74 65 64 | 20 69 6e 73 69 64 65 20 |valuated| inside |
|00001e30| 61 20 6c 65 74 20 74 68 | 61 74 20 62 69 6e 64 73 |a let th|at binds|
|00001e40| 20 4e 45 57 53 59 4d 2e | 20 20 52 65 74 75 72 6e | NEWSYM.| Return|
|00001e50| 73 20 74 68 65 20 63 6c | 61 75 73 65 73 20 69 6e |s the cl|auses in|
|00001e60| 0a 72 65 76 65 72 73 65 | 20 6f 72 64 65 72 2e 22 |.reverse| order."|
|00001e70| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 09 18 09 | (byte-c|ode "...|
|00001e80| 41 1a 09 40 1b c9 1c ca | 08 21 3f 85 8b 00 0b 40 |A..@....|.!?....@|
|00001e90| 0b 41 1e 06 1d 0d 3f 83 | 26 00 cb cc cd 0b 21 5c |.A....?.|&.....!\|
|00001ea0| 22 82 7b 00 0d c8 3d 86 | 2f 00 0d ce 3d 83 48 00 |".{...=.|/...=.H.|
|00001eb0| ca 0a 21 3f 85 3c 00 cb | cf 21 88 c8 0e 06 42 0c |..!?.<..|.!....B.|
|00001ec0| 42 89 14 82 7b 00 d0 0d | 21 83 5f 00 d1 0e 07 d2 |B...{...|!._.....|
|00001ed0| 0d 44 45 0e 06 42 0c 42 | 89 14 82 7b 00 0d 3c 83 |.DE..B.B|...{..<.|
|00001ee0| 75 00 d3 0e 07 d2 0d 44 | 45 0e 06 42 0c 42 89 14 |u......D|E..B.B..|
|00001ef0| 82 7b 00 cb d4 cd 0d 21 | 5c 22 2a 88 08 41 10 0a |.{.....!|\"*..A..|
|00001f00| 41 12 08 40 89 13 88 82 | 0a 00 88 0c 2c 87 22 20 |A..@....|....,." |
|00001f10| 5b 63 75 72 72 65 6e 74 | 70 6f 73 20 63 61 73 65 |[current|pos case|
|00001f20| 73 20 6e 65 78 74 70 6f | 73 20 63 75 72 63 6c 61 |s nextpo|s curcla|
|00001f30| 75 73 65 20 72 65 73 75 | 6c 74 20 68 65 61 64 20 |use resu|lt head |
|00001f40| 62 6f 64 79 20 6e 65 77 | 73 79 6d 20 74 20 6e 69 |body new|sym t ni|
|00001f50| 6c 20 65 6e 64 70 20 65 | 72 72 6f 72 20 22 43 61 |l endp e|rror "Ca|
|00001f60| 73 65 20 63 6c 61 75 73 | 65 73 20 63 61 6e 6e 6f |se claus|es canno|
|00001f70| 74 20 68 61 76 65 20 6e | 75 6c 6c 20 68 65 61 64 |t have n|ull head|
|00001f80| 73 3a 20 60 25 73 27 22 | 20 70 72 69 6e 31 2d 74 |s: `%s'"| prin1-t|
|00001f90| 6f 2d 73 74 72 69 6e 67 | 20 6f 74 68 65 72 77 69 |o-string| otherwi|
|00001fa0| 73 65 20 22 43 6c 61 75 | 73 65 20 77 69 74 68 20 |se "Clau|se with |
|00001fb0| 60 74 27 20 6f 72 20 60 | 6f 74 68 65 72 77 69 73 |`t' or `|otherwis|
|00001fc0| 65 27 20 68 65 61 64 20 | 6d 75 73 74 20 62 65 20 |e' head |must be |
|00001fd0| 6c 61 73 74 22 20 61 74 | 6f 6d 20 65 71 6c 20 71 |last" at|om eql q|
|00001fe0| 75 6f 74 65 20 6d 65 6d | 62 65 72 20 22 44 6f 6e |uote mem|ber "Don|
|00001ff0| 27 74 20 6b 6e 6f 77 20 | 68 6f 77 20 74 6f 20 70 |'t know |how to p|
|00002000| 61 72 73 65 20 63 61 73 | 65 20 63 6c 61 75 73 65 |arse cas|e clause|
|00002010| 20 60 25 73 27 2e 22 5d | 20 31 31 29 29 0a 0a 28 | `%s'."]| 11))..(|
|00002020| 70 75 74 20 28 71 75 6f | 74 65 20 64 6f 29 20 28 |put (quo|te do) (|
|00002030| 71 75 6f 74 65 20 6c 69 | 73 70 2d 69 6e 64 65 6e |quote li|sp-inden|
|00002040| 74 2d 68 6f 6f 6b 29 20 | 32 29 0a 0a 28 70 75 74 |t-hook) |2)..(put|
|00002050| 20 28 71 75 6f 74 65 20 | 64 6f 2a 29 20 28 71 75 | (quote |do*) (qu|
|00002060| 6f 74 65 20 6c 69 73 70 | 2d 69 6e 64 65 6e 74 2d |ote lisp|-indent-|
|00002070| 68 6f 6f 6b 29 20 32 29 | 0a 0a 28 70 75 74 20 28 |hook) 2)|..(put (|
|00002080| 71 75 6f 74 65 20 64 6f | 6c 69 73 74 29 20 28 71 |quote do|list) (q|
|00002090| 75 6f 74 65 20 6c 69 73 | 70 2d 69 6e 64 65 6e 74 |uote lis|p-indent|
|000020a0| 2d 68 6f 6f 6b 29 20 31 | 29 0a 0a 28 70 75 74 20 |-hook) 1|)..(put |
|000020b0| 28 71 75 6f 74 65 20 64 | 6f 74 69 6d 65 73 29 20 |(quote d|otimes) |
|000020c0| 28 71 75 6f 74 65 20 6c | 69 73 70 2d 69 6e 64 65 |(quote l|isp-inde|
|000020d0| 6e 74 2d 68 6f 6f 6b 29 | 20 31 29 0a 0a 28 70 75 |nt-hook)| 1)..(pu|
|000020e0| 74 20 28 71 75 6f 74 65 | 20 64 6f 2d 73 79 6d 62 |t (quote| do-symb|
|000020f0| 6f 6c 73 29 20 28 71 75 | 6f 74 65 20 6c 69 73 70 |ols) (qu|ote lisp|
|00002100| 2d 69 6e 64 65 6e 74 2d | 68 6f 6f 6b 29 20 31 29 |-indent-|hook) 1)|
|00002110| 0a 0a 28 70 75 74 20 28 | 71 75 6f 74 65 20 64 6f |..(put (|quote do|
|00002120| 2d 61 6c 6c 2d 73 79 6d | 62 6f 6c 73 29 20 28 71 |-all-sym|bols) (q|
|00002130| 75 6f 74 65 20 6c 69 73 | 70 2d 69 6e 64 65 6e 74 |uote lis|p-indent|
|00002140| 2d 68 6f 6f 6b 29 20 31 | 29 0a 0a 28 64 65 66 6d |-hook) 1|)..(defm|
|00002150| 61 63 72 6f 20 64 6f 20 | 28 73 74 65 70 66 6f 72 |acro do |(stepfor|
|00002160| 6d 73 20 65 6e 64 66 6f | 72 6d 73 20 26 72 65 73 |ms endfo|rms &res|
|00002170| 74 20 62 6f 64 79 29 20 | 22 28 64 6f 20 53 54 45 |t body) |"(do STE|
|00002180| 50 46 4f 52 4d 53 20 45 | 4e 44 46 4f 52 4d 53 20 |PFORMS E|NDFORMS |
|00002190| 2e 20 42 4f 44 59 29 3a | 20 49 74 65 72 61 74 65 |. BODY):| Iterate|
|000021a0| 20 42 4f 44 59 2c 20 73 | 74 65 70 70 69 6e 67 20 | BODY, s|tepping |
|000021b0| 73 6f 6d 65 20 6c 6f 63 | 61 6c 20 76 61 72 69 61 |some loc|al varia|
|000021c0| 62 6c 65 73 2e 0a 53 54 | 45 50 46 4f 52 4d 53 20 |bles..ST|EPFORMS |
|000021d0| 6d 75 73 74 20 62 65 20 | 61 20 6c 69 73 74 20 6f |must be |a list o|
|000021e0| 66 20 73 79 6d 62 6f 6c | 73 20 6f 72 20 6c 69 73 |f symbol|s or lis|
|000021f0| 74 73 2e 20 20 49 6e 20 | 74 68 65 20 73 65 63 6f |ts. In |the seco|
|00002200| 6e 64 20 63 61 73 65 2c | 20 74 68 65 0a 6c 69 73 |nd case,| the.lis|
|00002210| 74 73 20 6d 75 73 74 20 | 73 74 61 72 74 20 77 69 |ts must |start wi|
|00002220| 74 68 20 61 20 73 79 6d | 62 6f 6c 20 61 6e 64 20 |th a sym|bol and |
|00002230| 63 6f 6e 74 61 69 6e 20 | 75 70 20 74 6f 20 74 77 |contain |up to tw|
|00002240| 6f 20 6d 6f 72 65 20 66 | 6f 72 6d 73 2e 20 49 6e |o more f|orms. In|
|00002250| 0a 74 68 65 20 53 54 45 | 50 46 4f 52 4d 53 2c 20 |.the STE|PFORMS, |
|00002260| 61 20 73 79 6d 62 6f 6c | 20 69 73 20 74 68 65 20 |a symbol| is the |
|00002270| 73 61 6d 65 20 61 73 20 | 61 20 28 73 79 6d 62 6f |same as |a (symbo|
|00002280| 6c 29 2e 20 20 54 68 65 | 20 6f 74 68 65 72 20 32 |l). The| other 2|
|00002290| 20 66 6f 72 6d 73 0a 61 | 72 65 20 74 68 65 20 69 | forms.a|re the i|
|000022a0| 6e 69 74 69 61 6c 20 76 | 61 6c 75 65 20 28 64 65 |nitial v|alue (de|
|000022b0| 66 2e 20 4e 49 4c 29 20 | 61 6e 64 20 74 68 65 20 |f. NIL) |and the |
|000022c0| 66 6f 72 6d 20 74 6f 20 | 73 74 65 70 20 28 64 65 |form to |step (de|
|000022d0| 66 2e 20 69 74 73 65 6c | 66 29 2e 0a 54 68 65 20 |f. itsel|f)..The |
|000022e0| 76 61 6c 75 65 73 20 75 | 73 65 64 20 62 79 20 69 |values u|sed by i|
|000022f0| 6e 69 74 69 61 6c 69 7a | 61 74 69 6f 6e 20 61 6e |nitializ|ation an|
|00002300| 64 20 73 74 65 70 70 69 | 6e 67 20 61 72 65 20 63 |d steppi|ng are c|
|00002310| 6f 6d 70 75 74 65 64 20 | 69 6e 20 70 61 72 61 6c |omputed |in paral|
|00002320| 6c 65 6c 2e 0a 54 68 65 | 20 45 4e 44 46 4f 52 4d |lel..The| ENDFORM|
|00002330| 53 20 61 72 65 20 61 20 | 6c 69 73 74 20 28 43 4f |S are a |list (CO|
|00002340| 4e 44 49 54 49 4f 4e 20 | 2e 20 45 4e 44 42 4f 44 |NDITION |. ENDBOD|
|00002350| 59 29 2e 20 20 49 66 20 | 74 68 65 20 43 4f 4e 44 |Y). If |the COND|
|00002360| 49 54 49 4f 4e 0a 65 76 | 61 6c 75 61 74 65 73 20 |ITION.ev|aluates |
|00002370| 74 6f 20 74 72 75 65 20 | 69 6e 20 61 6e 79 20 69 |to true |in any i|
|00002380| 74 65 72 61 74 69 6f 6e | 2c 20 45 4e 44 42 4f 44 |teration|, ENDBOD|
|00002390| 59 20 69 73 20 65 76 61 | 6c 75 61 74 65 64 20 61 |Y is eva|luated a|
|000023a0| 6e 64 20 74 68 65 20 6c | 61 73 74 0a 66 6f 72 6d |nd the l|ast.form|
|000023b0| 20 69 6e 20 69 74 20 69 | 73 20 72 65 74 75 72 6e | in it i|s return|
|000023c0| 65 64 2e 0a 54 68 65 20 | 42 4f 44 59 20 28 77 68 |ed..The |BODY (wh|
|000023d0| 69 63 68 20 6d 61 79 20 | 62 65 20 65 6d 70 74 79 |ich may |be empty|
|000023e0| 29 20 69 73 20 65 76 61 | 6c 75 61 74 65 64 20 61 |) is eva|luated a|
|000023f0| 74 20 65 76 65 72 79 20 | 69 74 65 72 61 74 69 6f |t every |iteratio|
|00002400| 6e 2c 20 77 69 74 68 0a | 74 68 65 20 73 79 6d 62 |n, with.|the symb|
|00002410| 6f 6c 73 20 6f 66 20 74 | 68 65 20 53 54 45 50 46 |ols of t|he STEPF|
|00002420| 4f 52 4d 53 20 62 6f 75 | 6e 64 20 74 6f 20 74 68 |ORMS bou|nd to th|
|00002430| 65 20 69 6e 69 74 69 61 | 6c 20 6f 72 20 73 74 65 |e initia|l or ste|
|00002440| 70 70 65 64 20 76 61 6c | 75 65 73 2e 22 20 28 62 |pped val|ues." (b|
|00002450| 79 74 65 2d 63 6f 64 65 | 20 22 c7 08 21 85 09 00 |yte-code| "..!...|
|00002460| c8 09 21 88 c9 08 21 ca | 08 21 09 40 09 41 1d 1c |..!...!.|.!.@.A..|
|00002470| 1b 1a cb 0a cc cd 0c 44 | ce 0e 06 0b 5c 22 42 42 |.......D|....\"BB|
|00002480| ce 0d 21 42 42 42 2c 87 | 22 20 5b 73 74 65 70 66 |..!BBB,.|" [stepf|
|00002490| 6f 72 6d 73 20 65 6e 64 | 66 6f 72 6d 73 20 69 6e |orms end|forms in|
|000024a0| 69 74 6c 69 73 74 20 73 | 74 65 70 6c 69 73 74 20 |itlist s|teplist |
|000024b0| 65 6e 64 63 6f 6e 64 20 | 65 6e 64 62 6f 64 79 20 |endcond |endbody |
|000024c0| 62 6f 64 79 20 63 68 65 | 63 6b 2d 64 6f 2d 73 74 |body che|ck-do-st|
|000024d0| 65 70 66 6f 72 6d 73 20 | 63 68 65 63 6b 2d 64 6f |epforms |check-do|
|000024e0| 2d 65 6e 64 66 6f 72 6d | 73 20 65 78 74 72 61 63 |-endform|s extrac|
|000024f0| 74 2d 64 6f 2d 69 6e 69 | 74 73 20 65 78 74 72 61 |t-do-ini|ts extra|
|00002500| 63 74 2d 64 6f 2d 73 74 | 65 70 73 20 6c 65 74 20 |ct-do-st|eps let |
|00002510| 77 68 69 6c 65 20 6e 6f | 74 20 61 70 70 65 6e 64 |while no|t append|
|00002520| 5d 20 31 31 29 29 0a 0a | 28 64 65 66 6d 61 63 72 |] 11))..|(defmacr|
|00002530| 6f 20 64 6f 2a 20 28 73 | 74 65 70 66 6f 72 6d 73 |o do* (s|tepforms|
|00002540| 20 65 6e 64 66 6f 72 6d | 73 20 26 72 65 73 74 20 | endform|s &rest |
|00002550| 62 6f 64 79 29 20 22 60 | 64 6f 2a 27 20 69 73 20 |body) "`|do*' is |
|00002560| 74 6f 20 60 64 6f 27 20 | 61 73 20 60 6c 65 74 2a |to `do' |as `let*|
|00002570| 27 20 69 73 20 74 6f 20 | 60 6c 65 74 27 2e 0a 53 |' is to |`let'..S|
|00002580| 54 45 50 46 4f 52 4d 53 | 20 6d 75 73 74 20 62 65 |TEPFORMS| must be|
|00002590| 20 61 20 6c 69 73 74 20 | 6f 66 20 73 79 6d 62 6f | a list |of symbo|
|000025a0| 6c 73 20 6f 72 20 6c 69 | 73 74 73 2e 20 20 49 6e |ls or li|sts. In|
|000025b0| 20 74 68 65 20 73 65 63 | 6f 6e 64 20 63 61 73 65 | the sec|ond case|
|000025c0| 2c 20 74 68 65 0a 6c 69 | 73 74 73 20 6d 75 73 74 |, the.li|sts must|
|000025d0| 20 73 74 61 72 74 20 77 | 69 74 68 20 61 20 73 79 | start w|ith a sy|
|000025e0| 6d 62 6f 6c 20 61 6e 64 | 20 63 6f 6e 74 61 69 6e |mbol and| contain|
|000025f0| 20 75 70 20 74 6f 20 74 | 77 6f 20 6d 6f 72 65 20 | up to t|wo more |
|00002600| 66 6f 72 6d 73 2e 20 49 | 6e 0a 74 68 65 20 53 54 |forms. I|n.the ST|
|00002610| 45 50 46 4f 52 4d 53 2c | 20 61 20 73 79 6d 62 6f |EPFORMS,| a symbo|
|00002620| 6c 20 69 73 20 74 68 65 | 20 73 61 6d 65 20 61 73 |l is the| same as|
|00002630| 20 61 20 28 73 79 6d 62 | 6f 6c 29 2e 20 20 54 68 | a (symb|ol). Th|
|00002640| 65 20 6f 74 68 65 72 20 | 32 20 66 6f 72 6d 73 0a |e other |2 forms.|
|00002650| 61 72 65 20 74 68 65 20 | 69 6e 69 74 69 61 6c 20 |are the |initial |
|00002660| 76 61 6c 75 65 20 28 64 | 65 66 2e 20 4e 49 4c 29 |value (d|ef. NIL)|
|00002670| 20 61 6e 64 20 74 68 65 | 20 66 6f 72 6d 20 74 6f | and the| form to|
|00002680| 20 73 74 65 70 20 28 64 | 65 66 2e 20 69 74 73 65 | step (d|ef. itse|
|00002690| 6c 66 29 2e 0a 49 6e 69 | 74 69 61 6c 69 7a 61 74 |lf)..Ini|tializat|
|000026a0| 69 6f 6e 73 20 61 6e 64 | 20 73 74 65 70 70 69 6e |ions and| steppin|
|000026b0| 67 73 20 61 72 65 20 64 | 6f 6e 65 20 69 6e 20 74 |gs are d|one in t|
|000026c0| 68 65 20 73 65 71 75 65 | 6e 63 65 20 74 68 65 79 |he seque|nce they|
|000026d0| 20 61 72 65 20 77 72 69 | 74 74 65 6e 2e 0a 54 68 | are wri|tten..Th|
|000026e0| 65 20 45 4e 44 46 4f 52 | 4d 53 20 61 72 65 20 61 |e ENDFOR|MS are a|
|000026f0| 20 6c 69 73 74 20 28 43 | 4f 4e 44 49 54 49 4f 4e | list (C|ONDITION|
|00002700| 20 2e 20 45 4e 44 42 4f | 44 59 29 2e 20 20 49 66 | . ENDBO|DY). If|
|00002710| 20 74 68 65 20 43 4f 4e | 44 49 54 49 4f 4e 0a 65 | the CON|DITION.e|
|00002720| 76 61 6c 75 61 74 65 73 | 20 74 6f 20 74 72 75 65 |valuates| to true|
|00002730| 20 69 6e 20 61 6e 79 20 | 69 74 65 72 61 74 69 6f | in any |iteratio|
|00002740| 6e 2c 20 45 4e 44 42 4f | 44 59 20 69 73 20 65 76 |n, ENDBO|DY is ev|
|00002750| 61 6c 75 61 74 65 64 20 | 61 6e 64 20 74 68 65 20 |aluated |and the |
|00002760| 6c 61 73 74 0a 66 6f 72 | 6d 20 69 6e 20 69 74 20 |last.for|m in it |
|00002770| 69 73 20 72 65 74 75 72 | 6e 65 64 2e 0a 54 68 65 |is retur|ned..The|
|00002780| 20 42 4f 44 59 20 28 77 | 68 69 63 68 20 6d 61 79 | BODY (w|hich may|
|00002790| 20 62 65 20 65 6d 70 74 | 79 29 20 69 73 20 65 76 | be empt|y) is ev|
|000027a0| 61 6c 75 61 74 65 64 20 | 61 74 20 65 76 65 72 79 |aluated |at every|
|000027b0| 20 69 74 65 72 61 74 69 | 6f 6e 2c 20 77 69 74 68 | iterati|on, with|
|000027c0| 0a 74 68 65 20 73 79 6d | 62 6f 6c 73 20 6f 66 20 |.the sym|bols of |
|000027d0| 74 68 65 20 53 54 45 50 | 46 4f 52 4d 53 20 62 6f |the STEP|FORMS bo|
|000027e0| 75 6e 64 20 74 6f 20 74 | 68 65 20 69 6e 69 74 69 |und to t|he initi|
|000027f0| 61 6c 20 6f 72 20 73 74 | 65 70 70 65 64 20 76 61 |al or st|epped va|
|00002800| 6c 75 65 73 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |lues." (|byte-cod|
|00002810| 65 20 22 c7 08 21 85 09 | 00 c8 09 21 88 c9 08 21 |e "..!..|...!...!|
|00002820| ca 08 21 09 40 09 41 1d | 1c 1b 1a cb 0a cc cd 0c |..!.@.A.|........|
|00002830| 44 ce 0e 06 0b 5c 22 42 | 42 ce 0d 21 42 42 42 2c |D....\"B|B..!BBB,|
|00002840| 87 22 20 5b 73 74 65 70 | 66 6f 72 6d 73 20 65 6e |." [step|forms en|
|00002850| 64 66 6f 72 6d 73 20 69 | 6e 69 74 6c 69 73 74 20 |dforms i|nitlist |
|00002860| 73 74 65 70 6c 69 73 74 | 20 65 6e 64 63 6f 6e 64 |steplist| endcond|
|00002870| 20 65 6e 64 62 6f 64 79 | 20 62 6f 64 79 20 63 68 | endbody| body ch|
|00002880| 65 63 6b 2d 64 6f 2d 73 | 74 65 70 66 6f 72 6d 73 |eck-do-s|tepforms|
|00002890| 20 63 68 65 63 6b 2d 64 | 6f 2d 65 6e 64 66 6f 72 | check-d|o-endfor|
|000028a0| 6d 73 20 65 78 74 72 61 | 63 74 2d 64 6f 2d 69 6e |ms extra|ct-do-in|
|000028b0| 69 74 73 20 65 78 74 72 | 61 63 74 2d 64 6f 2a 2d |its extr|act-do*-|
|000028c0| 73 74 65 70 73 20 6c 65 | 74 2a 20 77 68 69 6c 65 |steps le|t* while|
|000028d0| 20 6e 6f 74 20 61 70 70 | 65 6e 64 5d 20 31 31 29 | not app|end] 11)|
|000028e0| 29 0a 0a 28 64 65 66 75 | 6e 20 63 68 65 63 6b 2d |)..(defu|n check-|
|000028f0| 64 6f 2d 73 74 65 70 66 | 6f 72 6d 73 20 28 66 6f |do-stepf|orms (fo|
|00002900| 72 6d 73 29 20 22 5c 0a | 54 72 75 65 20 69 66 20 |rms) "\.|True if |
|00002910| 46 4f 52 4d 53 20 69 73 | 20 61 20 76 61 6c 69 64 |FORMS is| a valid|
|00002920| 20 73 74 65 70 66 6f 72 | 6d 73 20 66 6f 72 20 74 | stepfor|ms for t|
|00002930| 68 65 20 64 6f 5b 2a 5d | 20 6d 61 63 72 6f 20 28 |he do[*]| macro (|
|00002940| 71 2e 76 2e 29 22 20 28 | 62 79 74 65 2d 63 6f 64 |q.v.)" (|byte-cod|
|00002950| 65 20 22 c2 08 21 83 0f | 00 c3 c4 c5 08 21 5c 22 |e "..!..|.....!\"|
|00002960| 82 13 00 c6 c7 08 5c 22 | 87 22 20 5b 66 6f 72 6d |......\"|." [form|
|00002970| 73 20 74 20 6e 6c 69 73 | 74 70 20 65 72 72 6f 72 |s t nlis|tp error|
|00002980| 20 22 49 6e 69 74 2f 53 | 74 65 70 20 66 6f 72 6d | "Init/S|tep form|
|00002990| 20 66 6f 72 20 64 6f 5b | 2a 5d 20 73 68 6f 75 6c | for do[|*] shoul|
|000029a0| 64 20 62 65 20 61 20 6c | 69 73 74 2c 20 6e 6f 74 |d be a l|ist, not|
|000029b0| 20 60 25 73 27 22 20 70 | 72 69 6e 31 2d 74 6f 2d | `%s'" p|rin1-to-|
|000029c0| 73 74 72 69 6e 67 20 6d | 61 70 63 61 72 20 28 6c |string m|apcar (l|
|000029d0| 61 6d 62 64 61 20 28 65 | 6e 74 72 79 29 20 28 62 |ambda (e|ntry) (b|
|000029e0| 79 74 65 2d 63 6f 64 65 | 20 22 08 39 86 14 00 08 |yte-code| ".9....|
|000029f0| 3c 85 14 00 08 40 39 85 | 14 00 08 47 c2 57 83 1b |<....@9.|...G.W..|
|00002a00| 00 c1 82 21 00 c3 c4 c5 | 08 21 5c 22 87 22 20 5b |...!....|.!\"." [|
|00002a10| 65 6e 74 72 79 20 74 20 | 34 20 65 72 72 6f 72 20 |entry t |4 error |
|00002a20| 22 49 6e 69 74 2f 53 74 | 65 70 20 6d 75 73 74 20 |"Init/St|ep must |
|00002a30| 62 65 20 73 79 6d 62 6f | 6c 20 6f 72 20 28 73 79 |be symbo|l or (sy|
|00002a40| 6d 62 6f 6c 20 5b 69 6e | 69 74 20 5b 73 74 65 70 |mbol [in|it [step|
|00002a50| 5d 5d 29 2c 20 6e 6f 74 | 20 60 25 73 27 22 20 70 |]]), not| `%s'" p|
|00002a60| 72 69 6e 31 2d 74 6f 2d | 73 74 72 69 6e 67 5d 20 |rin1-to-|string] |
|00002a70| 34 29 29 5d 20 36 29 29 | 0a 0a 28 64 65 66 75 6e |4))] 6))|..(defun|
|00002a80| 20 63 68 65 63 6b 2d 64 | 6f 2d 65 6e 64 66 6f 72 | check-d|o-endfor|
|00002a90| 6d 73 20 28 66 6f 72 6d | 73 29 20 22 5c 0a 54 72 |ms (form|s) "\.Tr|
|00002aa0| 75 65 20 69 66 20 46 4f | 52 4d 53 20 69 73 20 61 |ue if FO|RMS is a|
|00002ab0| 20 76 61 6c 69 64 20 65 | 6e 64 66 6f 72 6d 73 20 | valid e|ndforms |
|00002ac0| 66 6f 72 20 74 68 65 20 | 64 6f 5b 2a 5d 20 6d 61 |for the |do[*] ma|
|00002ad0| 63 72 6f 20 28 71 2e 76 | 2e 29 22 20 28 62 79 74 |cro (q.v|.)" (byt|
|00002ae0| 65 2d 63 6f 64 65 20 22 | 08 3c 83 09 00 c1 82 0f |e-code "|.<......|
|00002af0| 00 c2 c3 c4 08 21 5c 22 | 87 22 20 5b 66 6f 72 6d |.....!\"|." [form|
|00002b00| 73 20 74 20 65 72 72 6f | 72 20 22 54 65 72 6d 69 |s t erro|r "Termi|
|00002b10| 6e 61 74 69 6f 6e 20 66 | 6f 72 6d 20 66 6f 72 20 |nation f|orm for |
|00002b20| 64 6f 20 6d 61 63 72 6f | 20 73 68 6f 75 6c 64 20 |do macro| should |
|00002b30| 62 65 20 61 20 6c 69 73 | 74 2c 20 6e 6f 74 20 60 |be a lis|t, not `|
|00002b40| 25 73 27 22 20 70 72 69 | 6e 31 2d 74 6f 2d 73 74 |%s'" pri|n1-to-st|
|00002b50| 72 69 6e 67 5d 20 34 29 | 29 0a 0a 28 64 65 66 75 |ring] 4)|)..(defu|
|00002b60| 6e 20 65 78 74 72 61 63 | 74 2d 64 6f 2d 69 6e 69 |n extrac|t-do-ini|
|00002b70| 74 73 20 28 66 6f 72 6d | 73 29 20 22 5c 0a 52 65 |ts (form|s) "\.Re|
|00002b80| 74 75 72 6e 73 20 61 20 | 6c 69 73 74 20 6f 66 20 |turns a |list of |
|00002b90| 74 68 65 20 69 6e 69 74 | 69 61 6c 69 7a 61 74 69 |the init|ializati|
|00002ba0| 6f 6e 73 20 28 66 6f 72 | 20 64 6f 29 20 69 6e 20 |ons (for| do) in |
|00002bb0| 46 4f 52 4d 53 0a 2d 61 | 20 73 74 65 70 66 6f 72 |FORMS.-a| stepfor|
|00002bc0| 6d 73 2c 20 73 65 65 20 | 74 68 65 20 64 6f 20 6d |ms, see |the do m|
|00002bd0| 61 63 72 6f 2d 2e 20 46 | 6f 72 6d 73 20 69 73 20 |acro-. F|orms is |
|00002be0| 61 73 73 75 6d 65 64 20 | 73 79 6e 74 61 63 74 69 |assumed |syntacti|
|00002bf0| 63 61 6c 6c 79 20 76 61 | 6c 69 64 2e 22 20 28 62 |cally va|lid." (b|
|00002c00| 79 74 65 2d 63 6f 64 65 | 20 22 c1 c2 08 5c 22 87 |yte-code| "...\".|
|00002c10| 22 20 5b 66 6f 72 6d 73 | 20 6d 61 70 63 61 72 20 |" [forms| mapcar |
|00002c20| 28 6c 61 6d 62 64 61 20 | 28 65 6e 74 72 79 29 20 |(lambda |(entry) |
|00002c30| 28 62 79 74 65 2d 63 6f | 64 65 20 22 08 39 83 0b |(byte-co|de ".9..|
|00002c40| 00 08 c1 44 82 16 00 08 | 3c 85 16 00 08 40 c2 08 |...D....|<....@..|
|00002c50| 21 44 87 22 20 5b 65 6e | 74 72 79 20 6e 69 6c 20 |!D." [en|try nil |
|00002c60| 63 61 64 72 5d 20 33 29 | 29 5d 20 33 29 29 0a 0a |cadr] 3)|)] 3))..|
|00002c70| 28 64 65 66 75 6e 20 65 | 78 74 72 61 63 74 2d 64 |(defun e|xtract-d|
|00002c80| 6f 2d 73 74 65 70 73 20 | 28 66 6f 72 6d 73 29 20 |o-steps |(forms) |
|00002c90| 22 5c 0a 45 58 54 52 41 | 43 54 2d 44 4f 2d 53 54 |"\.EXTRA|CT-DO-ST|
|00002ca0| 45 50 53 20 46 4f 52 4d | 53 20 3d 3e 20 61 6e 20 |EPS FORM|S => an |
|00002cb0| 73 2d 65 78 70 72 0a 46 | 4f 52 4d 53 20 69 73 20 |s-expr.F|ORMS is |
|00002cc0| 74 68 65 20 73 74 65 70 | 66 6f 72 6d 73 20 70 61 |the step|forms pa|
|00002cd0| 72 74 20 6f 66 20 61 20 | 44 4f 20 6d 61 63 72 6f |rt of a |DO macro|
|00002ce0| 20 28 71 2e 76 2e 29 2e | 20 20 54 68 69 73 20 66 | (q.v.).| This f|
|00002cf0| 75 6e 63 74 69 6f 6e 0a | 63 6f 6e 73 74 72 75 63 |unction.|construc|
|00002d00| 74 73 20 61 6e 20 73 2d | 65 78 70 72 65 73 73 69 |ts an s-|expressi|
|00002d10| 6f 6e 20 74 68 61 74 20 | 64 6f 65 73 20 74 68 65 |on that |does the|
|00002d20| 20 73 74 65 70 70 69 6e | 67 20 61 74 20 74 68 65 | steppin|g at the|
|00002d30| 20 65 6e 64 20 6f 66 20 | 61 6e 0a 69 74 65 72 61 | end of |an.itera|
|00002d40| 74 69 6f 6e 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |tion." (|byte-cod|
|00002d50| 65 20 22 c1 c2 08 21 42 | 43 87 22 20 5b 66 6f 72 |e "...!B|C." [for|
|00002d60| 6d 73 20 70 73 65 74 71 | 20 73 65 6c 65 63 74 2d |ms psetq| select-|
|00002d70| 73 74 65 70 70 69 6e 67 | 2d 66 6f 72 6d 73 5d 20 |stepping|-forms] |
|00002d80| 33 29 29 0a 0a 28 64 65 | 66 75 6e 20 65 78 74 72 |3))..(de|fun extr|
|00002d90| 61 63 74 2d 64 6f 2a 2d | 73 74 65 70 73 20 28 66 |act-do*-|steps (f|
|00002da0| 6f 72 6d 73 29 20 22 5c | 0a 45 58 54 52 41 43 54 |orms) "\|.EXTRACT|
|00002db0| 2d 44 4f 2a 2d 53 54 45 | 50 53 20 46 4f 52 4d 53 |-DO*-STE|PS FORMS|
|00002dc0| 20 3d 3e 20 61 6e 20 73 | 2d 65 78 70 72 0a 46 4f | => an s|-expr.FO|
|00002dd0| 52 4d 53 20 69 73 20 74 | 68 65 20 73 74 65 70 66 |RMS is t|he stepf|
|00002de0| 6f 72 6d 73 20 70 61 72 | 74 20 6f 66 20 61 20 44 |orms par|t of a D|
|00002df0| 4f 2a 20 6d 61 63 72 6f | 20 28 71 2e 76 2e 29 2e |O* macro| (q.v.).|
|00002e00| 20 20 54 68 69 73 20 66 | 75 6e 63 74 69 6f 6e 0a | This f|unction.|
|00002e10| 63 6f 6e 73 74 72 75 63 | 74 73 20 61 6e 20 73 2d |construc|ts an s-|
|00002e20| 65 78 70 72 65 73 73 69 | 6f 6e 20 74 68 61 74 20 |expressi|on that |
|00002e30| 64 6f 65 73 20 74 68 65 | 20 73 74 65 70 70 69 6e |does the| steppin|
|00002e40| 67 20 61 74 20 74 68 65 | 20 65 6e 64 20 6f 66 20 |g at the| end of |
|00002e50| 61 6e 0a 69 74 65 72 61 | 74 69 6f 6e 2e 22 20 28 |an.itera|tion." (|
|00002e60| 62 79 74 65 2d 63 6f 64 | 65 20 22 c1 c2 08 21 42 |byte-cod|e "...!B|
|00002e70| 43 87 22 20 5b 66 6f 72 | 6d 73 20 73 65 74 71 20 |C." [for|ms setq |
|00002e80| 73 65 6c 65 63 74 2d 73 | 74 65 70 70 69 6e 67 2d |select-s|tepping-|
|00002e90| 66 6f 72 6d 73 5d 20 33 | 29 29 0a 0a 28 64 65 66 |forms] 3|))..(def|
|00002ea0| 75 6e 20 73 65 6c 65 63 | 74 2d 73 74 65 70 70 69 |un selec|t-steppi|
|00002eb0| 6e 67 2d 66 6f 72 6d 73 | 20 28 66 6f 72 6d 73 29 |ng-forms| (forms)|
|00002ec0| 20 22 5c 0a 53 65 70 61 | 72 61 74 65 20 6f 6e 6c | "\.Sepa|rate onl|
|00002ed0| 79 20 74 68 65 20 66 6f | 72 6d 73 20 74 68 61 74 |y the fo|rms that|
|00002ee0| 20 63 61 75 73 65 20 73 | 74 65 70 70 69 6e 67 2e | cause s|tepping.|
|00002ef0| 22 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 c4 0a |" (byte-|code "..|
|00002f00| c4 1b 19 18 09 85 2f 00 | 09 40 89 13 88 0b 3c 85 |....../.|.@....<.|
|00002f10| 18 00 0b 47 c5 55 85 26 | 00 c6 c7 0b 21 0b 40 44 |...G.U.&|....!.@D|
|00002f20| 08 5c 22 89 10 88 09 41 | 89 11 88 82 06 00 88 c8 |.\"....A|........|
|00002f30| 08 21 2b 87 22 20 5b 72 | 65 73 75 6c 74 20 70 74 |.!+." [r|esult pt|
|00002f40| 72 20 66 6f 72 6d 73 20 | 65 6e 74 72 79 20 6e 69 |r forms |entry ni|
|00002f50| 6c 20 33 20 61 70 70 65 | 6e 64 20 63 61 64 64 72 |l 3 appe|nd caddr|
|00002f60| 20 6e 72 65 76 65 72 73 | 65 5d 20 35 29 29 0a 0a | nrevers|e] 5))..|
|00002f70| 28 64 65 66 6d 61 63 72 | 6f 20 64 6f 6c 69 73 74 |(defmacr|o dolist|
|00002f80| 20 28 73 74 65 70 66 6f | 72 6d 20 26 72 65 73 74 | (stepfo|rm &rest|
|00002f90| 20 62 6f 64 79 29 20 22 | 28 64 6f 6c 69 73 74 20 | body) "|(dolist |
|00002fa0| 28 56 41 52 20 4c 49 53 | 54 20 5b 52 45 53 55 4c |(VAR LIS|T [RESUL|
|00002fb0| 54 46 4f 52 4d 5d 29 20 | 2e 20 42 4f 44 59 29 3a |TFORM]) |. BODY):|
|00002fc0| 20 64 6f 20 42 4f 44 59 | 20 66 6f 72 20 65 61 63 | do BODY| for eac|
|00002fd0| 68 20 65 6c 74 20 6f 66 | 20 4c 49 53 54 2e 0a 54 |h elt of| LIST..T|
|00002fe0| 68 65 20 52 45 53 55 4c | 54 46 4f 52 4d 20 64 65 |he RESUL|TFORM de|
|00002ff0| 66 61 75 6c 74 73 20 74 | 6f 20 6e 69 6c 2e 20 20 |faults t|o nil. |
|00003000| 54 68 65 20 56 41 52 20 | 69 73 20 62 6f 75 6e 64 |The VAR |is bound|
|00003010| 20 74 6f 20 73 75 63 63 | 65 73 73 69 76 65 0a 65 | to succ|essive.e|
|00003020| 6c 65 6d 65 6e 74 73 20 | 6f 66 20 74 68 65 20 76 |lements |of the v|
|00003030| 61 6c 75 65 20 6f 66 20 | 4c 49 53 54 20 61 6e 64 |alue of |LIST and|
|00003040| 20 72 65 6d 61 69 6e 73 | 20 62 6f 75 6e 64 20 28 | remains| bound (|
|00003050| 74 6f 20 74 68 65 20 6e | 69 6c 20 76 61 6c 75 65 |to the n|il value|
|00003060| 29 20 77 68 65 6e 20 74 | 68 65 0a 52 45 53 55 4c |) when t|he.RESUL|
|00003070| 54 46 4f 52 4d 20 69 73 | 20 65 76 61 6c 75 61 74 |TFORM is| evaluat|
|00003080| 65 64 2e 22 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |ed." (by|te-code |
|00003090| 22 c6 08 21 83 0f 00 c7 | c8 c9 08 21 5c 22 82 2d |"..!....|...!\".-|
|000030a0| 00 08 40 39 3f 83 20 00 | c7 ca c9 08 40 21 5c 22 |..@9?. .|....@!\"|
|000030b0| 82 2d 00 08 47 cb 56 85 | 2d 00 c7 cc c9 08 21 5c |.-..G.V.|-.....!\|
|000030c0| 22 88 08 40 19 cd 08 21 | 1a ce 08 21 1b cf d0 d1 |"..@...!|...!....|
|000030d0| d2 09 43 0c 42 42 44 0a | 45 d3 09 c5 44 43 0b 45 |..C.BBD.|E...DC.E|
|000030e0| 45 2b 87 22 20 5b 73 74 | 65 70 66 6f 72 6d 20 76 |E+." [st|epform v|
|000030f0| 61 72 20 6c 69 73 74 66 | 6f 72 6d 20 72 65 73 75 |ar listf|orm resu|
|00003100| 6c 74 66 6f 72 6d 20 62 | 6f 64 79 20 6e 69 6c 20 |ltform b|ody nil |
|00003110| 6e 6c 69 73 74 70 20 65 | 72 72 6f 72 20 22 53 74 |nlistp e|rror "St|
|00003120| 65 70 66 6f 72 6d 20 66 | 6f 72 20 60 64 6f 6c 69 |epform f|or `doli|
|00003130| 73 74 27 20 73 68 6f 75 | 6c 64 20 62 65 20 28 56 |st' shou|ld be (V|
|00003140| 41 52 20 4c 49 53 54 20 | 5b 52 45 53 55 4c 54 5d |AR LIST |[RESULT]|
|00003150| 29 2c 20 6e 6f 74 20 60 | 25 73 27 22 20 70 72 69 |), not `|%s'" pri|
|00003160| 6e 31 2d 74 6f 2d 73 74 | 72 69 6e 67 20 22 46 69 |n1-to-st|ring "Fi|
|00003170| 72 73 74 20 63 6f 6d 70 | 6f 6e 65 6e 74 20 6f 66 |rst comp|onent of|
|00003180| 20 73 74 65 70 66 6f 72 | 6d 20 73 68 6f 75 6c 64 | stepfor|m should|
|00003190| 20 62 65 20 61 20 73 79 | 6d 62 6f 6c 2c 20 6e 6f | be a sy|mbol, no|
|000031a0| 74 20 60 25 73 27 22 20 | 33 20 22 54 6f 6f 20 6d |t `%s'" |3 "Too m|
|000031b0| 61 6e 79 20 63 6f 6d 70 | 6f 6e 65 6e 74 73 20 69 |any comp|onents i|
|000031c0| 6e 20 73 74 65 70 66 6f | 72 6d 20 60 25 73 27 22 |n stepfo|rm `%s'"|
|000031d0| 20 63 61 64 72 20 63 61 | 64 64 72 20 70 72 6f 67 | cadr ca|ddr prog|
|000031e0| 6e 20 6d 61 70 63 61 72 | 20 66 75 6e 63 74 69 6f |n mapcar| functio|
|000031f0| 6e 20 6c 61 6d 62 64 61 | 20 6c 65 74 5d 20 31 35 |n lambda| let] 15|
|00003200| 29 29 0a 0a 28 64 65 66 | 6d 61 63 72 6f 20 64 6f |))..(def|macro do|
|00003210| 74 69 6d 65 73 20 28 73 | 74 65 70 66 6f 72 6d 20 |times (s|tepform |
|00003220| 26 72 65 73 74 20 62 6f | 64 79 29 20 22 28 64 6f |&rest bo|dy) "(do|
|00003230| 74 69 6d 65 73 20 28 56 | 41 52 20 43 4f 55 4e 54 |times (V|AR COUNT|
|00003240| 46 4f 52 4d 20 5b 52 45 | 53 55 4c 54 46 4f 52 4d |FORM [RE|SULTFORM|
|00003250| 5d 29 20 2e 20 20 42 4f | 44 59 29 3a 20 52 65 70 |]) . BO|DY): Rep|
|00003260| 65 61 74 20 42 4f 44 59 | 2c 20 63 6f 75 6e 74 69 |eat BODY|, counti|
|00003270| 6e 67 20 69 6e 20 56 41 | 52 2e 0a 54 68 65 20 43 |ng in VA|R..The C|
|00003280| 4f 55 4e 54 46 4f 52 4d | 20 73 68 6f 75 6c 64 20 |OUNTFORM| should |
|00003290| 72 65 74 75 72 6e 20 61 | 20 70 6f 73 69 74 69 76 |return a| positiv|
|000032a0| 65 20 69 6e 74 65 67 65 | 72 2e 20 20 54 68 65 20 |e intege|r. The |
|000032b0| 56 41 52 20 69 73 20 62 | 6f 75 6e 64 20 74 6f 0a |VAR is b|ound to.|
|000032c0| 73 75 63 63 65 73 73 69 | 76 65 20 69 6e 74 65 67 |successi|ve integ|
|000032d0| 65 72 73 20 66 72 6f 6d | 20 30 20 74 6f 20 43 4f |ers from| 0 to CO|
|000032e0| 55 4e 54 46 4f 52 4d 2d | 31 20 61 6e 64 20 74 68 |UNTFORM-|1 and th|
|000032f0| 65 20 42 4f 44 59 20 69 | 73 20 72 65 70 65 61 74 |e BODY i|s repeat|
|00003300| 65 64 20 66 6f 72 0a 65 | 61 63 68 20 6f 66 20 74 |ed for.e|ach of t|
|00003310| 68 65 6d 2e 20 20 41 74 | 20 74 68 65 20 65 6e 64 |hem. At| the end|
|00003320| 2c 20 74 68 65 20 52 45 | 53 55 4c 54 46 4f 52 4d |, the RE|SULTFORM|
|00003330| 20 69 73 20 65 76 61 6c | 75 61 74 65 64 20 61 6e | is eval|uated an|
|00003340| 64 20 69 74 73 20 76 61 | 6c 75 65 0a 72 65 74 75 |d its va|lue.retu|
|00003350| 72 6e 65 64 2e 20 44 75 | 72 69 6e 67 20 74 68 69 |rned. Du|ring thi|
|00003360| 73 20 6c 61 73 74 20 65 | 76 61 6c 75 61 74 69 6f |s last e|valuatio|
|00003370| 6e 2c 20 74 68 65 20 56 | 41 52 20 69 73 20 73 74 |n, the V|AR is st|
|00003380| 69 6c 6c 20 62 6f 75 6e | 64 2c 20 61 6e 64 20 69 |ill boun|d, and i|
|00003390| 74 73 0a 76 61 6c 75 65 | 20 69 73 20 74 68 65 20 |ts.value| is the |
|000033a0| 6e 75 6d 62 65 72 20 6f | 66 20 74 69 6d 65 73 20 |number o|f times |
|000033b0| 74 68 65 20 69 74 65 72 | 61 74 69 6f 6e 20 6f 63 |the iter|ation oc|
|000033c0| 63 75 72 72 65 64 2e 20 | 41 6e 20 6f 6d 69 74 74 |curred. |An omitt|
|000033d0| 65 64 20 52 45 53 55 4c | 54 46 4f 52 4d 0a 64 65 |ed RESUL|TFORM.de|
|000033e0| 66 61 75 6c 74 73 20 74 | 6f 20 6e 69 6c 2e 22 20 |faults t|o nil." |
|000033f0| 28 62 79 74 65 2d 63 6f | 64 65 20 22 c6 08 21 83 |(byte-co|de "..!.|
|00003400| 0f 00 c7 c8 c9 08 21 5c | 22 82 2d 00 08 40 39 3f |......!\|".-..@9?|
|00003410| 83 20 00 c7 ca c9 08 40 | 21 5c 22 82 2d 00 08 47 |. .....@|!\".-..G|
|00003420| cb 56 85 2d 00 c7 cc c9 | 08 21 5c 22 88 08 40 19 |.V.-....|.!\"..@.|
|00003430| cd 08 21 1a ce 08 21 1b | cf 20 1c d0 0c 0a 44 43 |..!...!.|. ....DC|
|00003440| d1 d2 09 d3 d4 09 d5 45 | 45 43 d6 09 0c 45 0b 44 |.......E|EC...E.D|
|00003450| 0d 24 45 2c 87 22 20 5b | 73 74 65 70 66 6f 72 6d |.$E,." [|stepform|
|00003460| 20 76 61 72 20 63 6f 75 | 6e 74 66 6f 72 6d 20 72 | var cou|ntform r|
|00003470| 65 73 75 6c 74 66 6f 72 | 6d 20 6e 65 77 73 79 6d |esultfor|m newsym|
|00003480| 20 62 6f 64 79 20 6e 6c | 69 73 74 70 20 65 72 72 | body nl|istp err|
|00003490| 6f 72 20 22 53 74 65 70 | 66 6f 72 6d 20 66 6f 72 |or "Step|form for|
|000034a0| 20 60 64 6f 74 69 6d 65 | 73 27 20 73 68 6f 75 6c | `dotime|s' shoul|
|000034b0| 64 20 62 65 20 28 56 41 | 52 20 43 4f 55 4e 54 20 |d be (VA|R COUNT |
|000034c0| 5b 52 45 53 55 4c 54 5d | 29 2c 20 6e 6f 74 20 60 |[RESULT]|), not `|
|000034d0| 25 73 27 22 20 70 72 69 | 6e 31 2d 74 6f 2d 73 74 |%s'" pri|n1-to-st|
|000034e0| 72 69 6e 67 20 22 46 69 | 72 73 74 20 63 6f 6d 70 |ring "Fi|rst comp|
|000034f0| 6f 6e 65 6e 74 20 6f 66 | 20 73 74 65 70 66 6f 72 |onent of| stepfor|
|00003500| 6d 20 73 68 6f 75 6c 64 | 20 62 65 20 61 20 73 79 |m should| be a sy|
|00003510| 6d 62 6f 6c 2c 20 6e 6f | 74 20 60 25 73 27 22 20 |mbol, no|t `%s'" |
|00003520| 33 20 22 54 6f 6f 20 6d | 61 6e 79 20 63 6f 6d 70 |3 "Too m|any comp|
|00003530| 6f 6e 65 6e 74 73 20 69 | 6e 20 73 74 65 70 66 6f |onents i|n stepfo|
|00003540| 72 6d 20 60 25 73 27 22 | 20 63 61 64 72 20 63 61 |rm `%s'"| cadr ca|
|00003550| 64 64 72 20 67 65 6e 74 | 65 6d 70 20 6c 65 74 2a |ddr gent|emp let*|
|00003560| 20 6c 69 73 74 2a 20 64 | 6f 2a 20 30 20 2b 20 31 | list* d|o* 0 + 1|
|00003570| 20 3e 3d 5d 20 31 39 29 | 29 0a 0a 28 64 65 66 6d | >=] 19)|)..(defm|
|00003580| 61 63 72 6f 20 64 6f 2d | 73 79 6d 62 6f 6c 73 20 |acro do-|symbols |
|00003590| 28 73 74 65 70 66 6f 72 | 6d 20 26 72 65 73 74 20 |(stepfor|m &rest |
|000035a0| 62 6f 64 79 29 20 22 28 | 64 6f 5f 73 79 6d 62 6f |body) "(|do_symbo|
|000035b0| 6c 73 20 28 56 41 52 20 | 5b 4f 42 41 52 52 41 59 |ls (VAR |[OBARRAY|
|000035c0| 20 5b 52 45 53 55 4c 54 | 46 4f 52 4d 5d 5d 29 20 | [RESULT|FORM]]) |
|000035d0| 2e 20 42 4f 44 59 29 0a | 54 68 65 20 56 41 52 20 |. BODY).|The VAR |
|000035e0| 69 73 20 62 6f 75 6e 64 | 20 74 6f 20 65 61 63 68 |is bound| to each|
|000035f0| 20 6f 66 20 74 68 65 20 | 73 79 6d 62 6f 6c 73 20 | of the |symbols |
|00003600| 69 6e 20 4f 42 41 52 52 | 41 59 20 28 64 65 66 2e |in OBARR|AY (def.|
|00003610| 20 6f 62 61 72 72 61 79 | 29 20 61 6e 64 0a 74 68 | obarray|) and.th|
|00003620| 65 20 42 4f 44 59 20 69 | 73 20 72 65 70 65 61 74 |e BODY i|s repeat|
|00003630| 65 64 6c 79 20 70 65 72 | 66 6f 72 6d 65 64 20 66 |edly per|formed f|
|00003640| 6f 72 20 65 61 63 68 20 | 6f 66 20 74 68 6f 73 65 |or each |of those|
|00003650| 20 62 69 6e 64 69 6e 67 | 73 2e 20 41 74 20 74 68 | binding|s. At th|
|00003660| 65 0a 65 6e 64 2c 20 52 | 45 53 55 4c 54 46 4f 52 |e.end, R|ESULTFOR|
|00003670| 4d 20 28 64 65 66 2e 20 | 6e 69 6c 29 20 69 73 20 |M (def. |nil) is |
|00003680| 65 76 61 6c 75 61 74 65 | 64 20 61 6e 64 20 69 74 |evaluate|d and it|
|00003690| 73 20 76 61 6c 75 65 20 | 72 65 74 75 72 6e 65 64 |s value |returned|
|000036a0| 2e 0a 44 75 72 69 6e 67 | 20 74 68 69 73 20 6c 61 |..During| this la|
|000036b0| 73 74 20 65 76 61 6c 75 | 61 74 69 6f 6e 2c 20 74 |st evalu|ation, t|
|000036c0| 68 65 20 56 41 52 20 69 | 73 20 73 74 69 6c 6c 20 |he VAR i|s still |
|000036d0| 62 6f 75 6e 64 20 61 6e | 64 20 69 74 73 20 76 61 |bound an|d its va|
|000036e0| 6c 75 65 20 69 73 20 6e | 69 6c 2e 0a 53 65 65 20 |lue is n|il..See |
|000036f0| 61 6c 73 6f 20 74 68 65 | 20 66 75 6e 63 74 69 6f |also the| functio|
|00003700| 6e 20 60 6d 61 70 61 74 | 6f 6d 73 27 2e 22 20 28 |n `mapat|oms'." (|
|00003710| 62 79 74 65 2d 63 6f 64 | 65 20 22 c6 08 21 83 0f |byte-cod|e "..!..|
|00003720| 00 c7 c8 c9 08 21 5c 22 | 82 2d 00 08 40 39 3f 83 |.....!\"|.-..@9?.|
|00003730| 20 00 c7 ca c9 08 40 21 | 5c 22 82 2d 00 08 47 cb | .....@!|\".-..G.|
|00003740| 56 85 2d 00 c7 cc c9 08 | 21 5c 22 88 08 40 19 cd |V.-.....|!\"..@..|
|00003750| 08 21 1a ce 08 21 1b cf | d0 d1 d2 09 43 0c 42 42 |.!...!..|....C.BB|
|00003760| 44 0a 45 d3 09 c5 44 43 | 0b 45 45 2b 87 22 20 5b |D.E...DC|.EE+." [|
|00003770| 73 74 65 70 66 6f 72 6d | 20 76 61 72 20 6f 62 6c |stepform| var obl|
|00003780| 69 73 74 20 72 65 73 75 | 6c 74 66 6f 72 6d 20 62 |ist resu|ltform b|
|00003790| 6f 64 79 20 6e 69 6c 20 | 6e 6c 69 73 74 70 20 65 |ody nil |nlistp e|
|000037a0| 72 72 6f 72 20 22 53 74 | 65 70 66 6f 72 6d 20 66 |rror "St|epform f|
|000037b0| 6f 72 20 60 64 6f 2d 73 | 79 6d 62 6f 6c 73 27 20 |or `do-s|ymbols' |
|000037c0| 73 68 6f 75 6c 64 20 62 | 65 20 28 56 41 52 20 4f |should b|e (VAR O|
|000037d0| 42 41 52 52 41 59 20 5b | 52 45 53 55 4c 54 5d 29 |BARRAY [|RESULT])|
|000037e0| 2c 20 6e 6f 74 20 60 25 | 73 27 22 20 70 72 69 6e |, not `%|s'" prin|
|000037f0| 31 2d 74 6f 2d 73 74 72 | 69 6e 67 20 22 46 69 72 |1-to-str|ing "Fir|
|00003800| 73 74 20 63 6f 6d 70 6f | 6e 65 6e 74 20 6f 66 20 |st compo|nent of |
|00003810| 73 74 65 70 66 6f 72 6d | 20 73 68 6f 75 6c 64 20 |stepform| should |
|00003820| 62 65 20 61 20 73 79 6d | 62 6f 6c 2c 20 6e 6f 74 |be a sym|bol, not|
|00003830| 20 60 25 73 27 22 20 33 | 20 22 54 6f 6f 20 6d 61 | `%s'" 3| "Too ma|
|00003840| 6e 79 20 63 6f 6d 70 6f | 6e 65 6e 74 73 20 69 6e |ny compo|nents in|
|00003850| 20 73 74 65 70 66 6f 72 | 6d 20 60 25 73 27 22 20 | stepfor|m `%s'" |
|00003860| 63 61 64 72 20 63 61 64 | 64 72 20 70 72 6f 67 6e |cadr cad|dr progn|
|00003870| 20 6d 61 70 61 74 6f 6d | 73 20 66 75 6e 63 74 69 | mapatom|s functi|
|00003880| 6f 6e 20 6c 61 6d 62 64 | 61 20 6c 65 74 5d 20 31 |on lambd|a let] 1|
|00003890| 35 29 29 0a 0a 28 64 65 | 66 6d 61 63 72 6f 20 64 |5))..(de|fmacro d|
|000038a0| 6f 2d 61 6c 6c 2d 73 79 | 6d 62 6f 6c 73 20 28 73 |o-all-sy|mbols (s|
|000038b0| 74 65 70 66 6f 72 6d 20 | 26 72 65 73 74 20 62 6f |tepform |&rest bo|
|000038c0| 64 79 29 20 22 28 64 6f | 2d 61 6c 6c 2d 73 79 6d |dy) "(do|-all-sym|
|000038d0| 62 6f 6c 73 20 28 56 41 | 52 20 5b 52 45 53 55 4c |bols (VA|R [RESUL|
|000038e0| 54 46 4f 52 4d 5d 29 20 | 2e 20 42 4f 44 59 29 0a |TFORM]) |. BODY).|
|000038f0| 49 73 20 74 68 65 20 73 | 61 6d 65 20 61 73 20 28 |Is the s|ame as (|
|00003900| 64 6f 2d 73 79 6d 62 6f | 6c 73 20 28 56 41 52 20 |do-symbo|ls (VAR |
|00003910| 6f 62 61 72 72 61 79 20 | 52 45 53 55 4c 54 46 4f |obarray |RESULTFO|
|00003920| 52 4d 29 20 2e 20 42 4f | 44 59 29 2e 22 20 28 62 |RM) . BO|DY)." (b|
|00003930| 79 74 65 2d 63 6f 64 65 | 20 22 c2 c3 08 40 c4 c5 |yte-code| "...@..|
|00003940| 08 21 45 09 23 87 22 20 | 5b 73 74 65 70 66 6f 72 |.!E.#." |[stepfor|
|00003950| 6d 20 62 6f 64 79 20 6c | 69 73 74 2a 20 64 6f 2d |m body l|ist* do-|
|00003960| 73 79 6d 62 6f 6c 73 20 | 6f 62 61 72 72 61 79 20 |symbols |obarray |
|00003970| 63 61 64 72 5d 20 36 29 | 29 0a 0a 28 64 65 66 6d |cadr] 6)|)..(defm|
|00003980| 61 63 72 6f 20 6c 6f 6f | 70 20 28 26 72 65 73 74 |acro loo|p (&rest|
|00003990| 20 62 6f 64 79 29 20 22 | 28 6c 6f 6f 70 20 2e 20 | body) "|(loop . |
|000039a0| 42 4f 44 59 29 20 72 65 | 70 65 61 74 73 20 42 4f |BODY) re|peats BO|
|000039b0| 44 59 20 69 6e 64 65 66 | 69 6e 69 74 65 6c 79 20 |DY indef|initely |
|000039c0| 61 6e 64 20 64 6f 65 73 | 20 6e 6f 74 20 72 65 74 |and does| not ret|
|000039d0| 75 72 6e 2e 0a 4e 6f 72 | 6d 61 6c 6c 79 20 42 4f |urn..Nor|mally BO|
|000039e0| 44 59 20 75 73 65 73 20 | 60 74 68 72 6f 77 27 20 |DY uses |`throw' |
|000039f0| 6f 72 20 60 73 69 67 6e | 61 6c 27 20 74 6f 20 63 |or `sign|al' to c|
|00003a00| 61 75 73 65 20 61 6e 20 | 65 78 69 74 2e 0a 54 68 |ause an |exit..Th|
|00003a10| 65 20 66 6f 72 6d 73 20 | 69 6e 20 42 4f 44 59 20 |e forms |in BODY |
|00003a20| 73 68 6f 75 6c 64 20 62 | 65 20 6c 69 73 74 73 2c |should b|e lists,|
|00003a30| 20 61 73 20 6e 6f 6e 2d | 6c 69 73 74 73 20 61 72 | as non-|lists ar|
|00003a40| 65 20 72 65 73 65 72 76 | 65 64 20 66 6f 72 20 6e |e reserv|ed for n|
|00003a50| 65 77 20 66 65 61 74 75 | 72 65 73 2e 22 20 28 62 |ew featu|res." (b|
|00003a60| 79 74 65 2d 63 6f 64 65 | 20 22 c1 08 21 83 0c 00 |yte-code| "..!...|
|00003a70| c2 c3 21 82 16 00 c4 c5 | 08 5c 22 88 c6 c7 08 42 |..!.....|.\"....B|
|00003a80| 42 87 22 20 5b 62 6f 64 | 79 20 6e 6c 69 73 74 70 |B." [bod|y nlistp|
|00003a90| 20 65 72 72 6f 72 20 22 | 42 6f 64 79 20 6f 66 20 | error "|Body of |
|00003aa0| 60 6c 6f 6f 70 27 20 73 | 68 6f 75 6c 64 20 62 65 |`loop' s|hould be|
|00003ab0| 20 61 20 6c 69 73 74 20 | 6f 66 20 6c 69 73 74 73 | a list |of lists|
|00003ac0| 20 6f 72 20 6e 69 6c 22 | 20 6d 61 70 63 61 72 20 | or nil"| mapcar |
|00003ad0| 28 6c 61 6d 62 64 61 20 | 28 63 6f 6d 70 6f 6e 65 |(lambda |(compone|
|00003ae0| 6e 74 29 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |nt) (byt|e-code "|
|00003af0| c1 08 21 85 09 00 c2 c3 | 21 87 22 20 5b 63 6f 6d |..!.....|!." [com|
|00003b00| 70 6f 6e 65 6e 74 20 6e | 6c 69 73 74 70 20 65 72 |ponent n|listp er|
|00003b10| 72 6f 72 20 22 43 6f 6d | 70 6f 6e 65 6e 74 73 20 |ror "Com|ponents |
|00003b20| 6f 66 20 60 6c 6f 6f 70 | 27 20 73 68 6f 75 6c 64 |of `loop|' should|
|00003b30| 20 62 65 20 6c 69 73 74 | 73 22 5d 20 33 29 29 20 | be list|s"] 3)) |
|00003b40| 77 68 69 6c 65 20 74 5d | 20 36 29 29 0a 0a 28 64 |while t]| 6))..(d|
|00003b50| 65 66 75 6e 20 66 69 72 | 73 74 20 28 78 29 20 22 |efun fir|st (x) "|
|00003b60| 5c 0a 53 79 6e 6f 6e 79 | 6d 20 66 6f 72 20 60 63 |\.Synony|m for `c|
|00003b70| 61 72 27 22 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |ar'" (by|te-code |
|00003b80| 22 08 40 87 22 20 5b 78 | 5d 20 31 29 29 0a 0a 28 |".@." [x|] 1))..(|
|00003b90| 64 65 66 75 6e 20 73 65 | 63 6f 6e 64 20 28 78 29 |defun se|cond (x)|
|00003ba0| 20 22 5c 0a 52 65 74 75 | 72 6e 20 74 68 65 20 73 | "\.Retu|rn the s|
|00003bb0| 65 63 6f 6e 64 20 65 6c | 65 6d 65 6e 74 20 6f 66 |econd el|ement of|
|00003bc0| 20 74 68 65 20 6c 69 73 | 74 20 4c 49 53 54 2e 22 | the lis|t LIST."|
|00003bd0| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 c1 08 38 | (byte-c|ode "..8|
|00003be0| 87 22 20 5b 78 20 31 5d | 20 32 29 29 0a 0a 28 64 |." [x 1]| 2))..(d|
|00003bf0| 65 66 75 6e 20 74 68 69 | 72 64 20 28 78 29 20 22 |efun thi|rd (x) "|
|00003c00| 5c 0a 52 65 74 75 72 6e | 20 74 68 65 20 74 68 69 |\.Return| the thi|
|00003c10| 72 64 20 65 6c 65 6d 65 | 6e 74 20 6f 66 20 74 68 |rd eleme|nt of th|
|00003c20| 65 20 6c 69 73 74 20 4c | 49 53 54 2e 22 20 28 62 |e list L|IST." (b|
|00003c30| 79 74 65 2d 63 6f 64 65 | 20 22 c1 08 38 87 22 20 |yte-code| "..8." |
|00003c40| 5b 78 20 32 5d 20 32 29 | 29 0a 0a 28 64 65 66 75 |[x 2] 2)|)..(defu|
|00003c50| 6e 20 66 6f 75 72 74 68 | 20 28 78 29 20 22 5c 0a |n fourth| (x) "\.|
|00003c60| 52 65 74 75 72 6e 20 74 | 68 65 20 66 6f 75 72 74 |Return t|he fourt|
|00003c70| 68 20 65 6c 65 6d 65 6e | 74 20 6f 66 20 74 68 65 |h elemen|t of the|
|00003c80| 20 6c 69 73 74 20 4c 49 | 53 54 2e 22 20 28 62 79 | list LI|ST." (by|
|00003c90| 74 65 2d 63 6f 64 65 20 | 22 c1 08 38 87 22 20 5b |te-code |"..8." [|
|00003ca0| 78 20 33 5d 20 32 29 29 | 0a 0a 28 64 65 66 75 6e |x 3] 2))|..(defun|
|00003cb0| 20 66 69 66 74 68 20 28 | 78 29 20 22 5c 0a 52 65 | fifth (|x) "\.Re|
|00003cc0| 74 75 72 6e 20 74 68 65 | 20 66 69 66 74 68 20 65 |turn the| fifth e|
|00003cd0| 6c 65 6d 65 6e 74 20 6f | 66 20 74 68 65 20 6c 69 |lement o|f the li|
|00003ce0| 73 74 20 4c 49 53 54 2e | 22 20 28 62 79 74 65 2d |st LIST.|" (byte-|
|00003cf0| 63 6f 64 65 20 22 c1 08 | 38 87 22 20 5b 78 20 34 |code "..|8." [x 4|
|00003d00| 5d 20 32 29 29 0a 0a 28 | 64 65 66 75 6e 20 73 69 |] 2))..(|defun si|
|00003d10| 78 74 68 20 28 78 29 20 | 22 5c 0a 52 65 74 75 72 |xth (x) |"\.Retur|
|00003d20| 6e 20 74 68 65 20 73 69 | 78 74 68 20 65 6c 65 6d |n the si|xth elem|
|00003d30| 65 6e 74 20 6f 66 20 74 | 68 65 20 6c 69 73 74 20 |ent of t|he list |
|00003d40| 4c 49 53 54 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |LIST." (|byte-cod|
|00003d50| 65 20 22 c1 08 38 87 22 | 20 5b 78 20 35 5d 20 32 |e "..8."| [x 5] 2|
|00003d60| 29 29 0a 0a 28 64 65 66 | 75 6e 20 73 65 76 65 6e |))..(def|un seven|
|00003d70| 74 68 20 28 78 29 20 22 | 5c 0a 52 65 74 75 72 6e |th (x) "|\.Return|
|00003d80| 20 74 68 65 20 73 65 76 | 65 6e 74 68 20 65 6c 65 | the sev|enth ele|
|00003d90| 6d 65 6e 74 20 6f 66 20 | 74 68 65 20 6c 69 73 74 |ment of |the list|
|00003da0| 20 4c 49 53 54 2e 22 20 | 28 62 79 74 65 2d 63 6f | LIST." |(byte-co|
|00003db0| 64 65 20 22 c1 08 38 87 | 22 20 5b 78 20 36 5d 20 |de "..8.|" [x 6] |
|00003dc0| 32 29 29 0a 0a 28 64 65 | 66 75 6e 20 65 69 67 68 |2))..(de|fun eigh|
|00003dd0| 74 68 20 28 78 29 20 22 | 5c 0a 52 65 74 75 72 6e |th (x) "|\.Return|
|00003de0| 20 74 68 65 20 65 69 67 | 68 74 68 20 65 6c 65 6d | the eig|hth elem|
|00003df0| 65 6e 74 20 6f 66 20 74 | 68 65 20 6c 69 73 74 20 |ent of t|he list |
|00003e00| 4c 49 53 54 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |LIST." (|byte-cod|
|00003e10| 65 20 22 c1 08 38 87 22 | 20 5b 78 20 37 5d 20 32 |e "..8."| [x 7] 2|
|00003e20| 29 29 0a 0a 28 64 65 66 | 75 6e 20 6e 69 6e 74 68 |))..(def|un ninth|
|00003e30| 20 28 78 29 20 22 5c 0a | 52 65 74 75 72 6e 20 74 | (x) "\.|Return t|
|00003e40| 68 65 20 6e 69 6e 74 68 | 20 65 6c 65 6d 65 6e 74 |he ninth| element|
|00003e50| 20 6f 66 20 74 68 65 20 | 6c 69 73 74 20 4c 49 53 | of the |list LIS|
|00003e60| 54 2e 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |T." (byt|e-code "|
|00003e70| c1 08 38 87 22 20 5b 78 | 20 38 5d 20 32 29 29 0a |..8." [x| 8] 2)).|
|00003e80| 0a 28 64 65 66 75 6e 20 | 74 65 6e 74 68 20 28 78 |.(defun |tenth (x|
|00003e90| 29 20 22 5c 0a 52 65 74 | 75 72 6e 20 74 68 65 20 |) "\.Ret|urn the |
|00003ea0| 74 65 6e 74 68 20 65 6c | 65 6d 65 6e 74 20 6f 66 |tenth el|ement of|
|00003eb0| 20 74 68 65 20 6c 69 73 | 74 20 4c 49 53 54 2e 22 | the lis|t LIST."|
|00003ec0| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 c1 08 38 | (byte-c|ode "..8|
|00003ed0| 87 22 20 5b 78 20 39 5d | 20 32 29 29 0a 0a 28 64 |." [x 9]| 2))..(d|
|00003ee0| 65 66 75 6e 20 72 65 73 | 74 20 28 78 29 20 22 5c |efun res|t (x) "\|
|00003ef0| 0a 53 79 6e 6f 6e 79 6d | 20 66 6f 72 20 60 63 64 |.Synonym| for `cd|
|00003f00| 72 27 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |r'" (byt|e-code "|
|00003f10| 08 41 87 22 20 5b 78 5d | 20 31 29 29 0a 0a 28 64 |.A." [x]| 1))..(d|
|00003f20| 65 66 75 6e 20 65 6e 64 | 70 20 28 78 29 20 22 5c |efun end|p (x) "\|
|00003f30| 0a 74 20 69 66 20 58 20 | 69 73 20 6e 69 6c 2c 20 |.t if X |is nil, |
|00003f40| 6e 69 6c 20 69 66 20 58 | 20 69 73 20 61 20 63 6f |nil if X| is a co|
|00003f50| 6e 73 3b 20 65 72 72 6f | 72 20 6f 74 68 65 72 77 |ns; erro|r otherw|
|00003f60| 69 73 65 2e 22 20 28 62 | 79 74 65 2d 63 6f 64 65 |ise." (b|yte-code|
|00003f70| 20 22 08 3c 83 0a 00 08 | 3f 82 10 00 c1 c2 c3 08 | ".<....|?.......|
|00003f80| 21 5c 22 87 22 20 5b 78 | 20 65 72 72 6f 72 20 22 |!\"." [x| error "|
|00003f90| 65 6e 64 70 20 72 65 63 | 65 69 76 65 64 20 61 20 |endp rec|eived a |
|00003fa0| 6e 6f 6e 2d 63 6f 6e 73 | 2c 20 6e 6f 6e 2d 6e 75 |non-cons|, non-nu|
|00003fb0| 6c 6c 20 61 72 67 75 6d | 65 6e 74 20 60 25 73 27 |ll argum|ent `%s'|
|00003fc0| 22 20 70 72 69 6e 31 2d | 74 6f 2d 73 74 72 69 6e |" prin1-|to-strin|
|00003fd0| 67 5d 20 34 29 29 0a 0a | 28 64 65 66 75 6e 20 6c |g] 4))..|(defun l|
|00003fe0| 61 73 74 20 28 78 29 20 | 22 5c 0a 52 65 74 75 72 |ast (x) |"\.Retur|
|00003ff0| 6e 73 20 74 68 65 20 6c | 61 73 74 20 6c 69 6e 6b |ns the l|ast link|
|00004000| 20 69 6e 20 74 68 65 20 | 6c 69 73 74 20 4c 49 53 | in the |list LIS|
|00004010| 54 2e 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |T." (byt|e-code "|
|00004020| c6 08 21 85 09 00 c7 c8 | 21 88 08 08 41 1a 19 c9 |..!.....|!...A...|
|00004030| 0a 21 3f 85 28 00 09 41 | 0a 41 1c 1b 0b 11 0c 89 |.!?.(..A|.A......|
|00004040| 12 88 c5 2a 88 82 0f 00 | 88 09 2a 87 22 20 5b 78 |...*....|..*." [x|
|00004050| 20 63 75 72 72 65 6e 74 | 2d 63 6f 6e 73 20 6e 65 | current|-cons ne|
|00004060| 78 74 2d 63 6f 6e 73 20 | 47 24 24 5f 32 20 47 24 |xt-cons |G$$_2 G$|
|00004070| 24 5f 31 20 6e 69 6c 20 | 6e 6c 69 73 74 70 20 65 |$_1 nil |nlistp e|
|00004080| 72 72 6f 72 20 22 41 72 | 67 20 74 6f 20 60 6c 61 |rror "Ar|g to `la|
|00004090| 73 74 27 20 6d 75 73 74 | 20 62 65 20 61 20 6c 69 |st' must| be a li|
|000040a0| 73 74 22 20 65 6e 64 70 | 5d 20 36 29 29 0a 0a 28 |st" endp|] 6))..(|
|000040b0| 64 65 66 75 6e 20 6c 69 | 73 74 2d 6c 65 6e 67 74 |defun li|st-lengt|
|000040c0| 68 20 28 78 29 20 22 5c | 0a 52 65 74 75 72 6e 73 |h (x) "\|.Returns|
|000040d0| 20 74 68 65 20 6c 65 6e | 67 74 68 20 6f 66 20 61 | the len|gth of a|
|000040e0| 20 6e 6f 6e 2d 63 69 72 | 63 75 6c 61 72 20 6c 69 | non-cir|cular li|
|000040f0| 73 74 2c 20 6f 72 20 60 | 6e 69 6c 27 20 66 6f 72 |st, or `|nil' for|
|00004100| 20 61 20 63 69 72 63 75 | 6c 61 72 20 6f 6e 65 2e | a circu|lar one.|
|00004110| 22 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 c9 0a |" (byte-|code "..|
|00004120| 0a c5 1c 1b 19 18 0c 3f | 85 5f 00 ca 09 21 83 19 |.......?|._...!..|
|00004130| 00 c6 89 14 82 47 00 ca | 09 41 21 83 2c 00 08 cb |.....G..|.A!.,...|
|00004140| 5c 5c 89 10 88 c6 89 14 | 82 47 00 09 0b 3d 85 35 |\\......|.G...=.5|
|00004150| 00 08 c9 56 83 42 00 c5 | 89 10 88 c6 89 14 82 47 |...V.B..|.......G|
|00004160| 00 08 cc 5c 5c 89 10 88 | cd 09 21 0b 41 1e 08 1e |...\\...|..!.A...|
|00004170| 07 0e 07 11 0e 08 89 13 | 88 c5 2a 88 82 08 00 88 |........|..*.....|
|00004180| 08 2c 87 22 20 5b 6e 20 | 66 61 73 74 20 78 20 73 |.,." [n |fast x s|
|00004190| 6c 6f 77 20 72 65 61 64 | 79 20 6e 69 6c 20 74 20 |low read|y nil t |
|000041a0| 47 24 24 5f 34 20 47 24 | 24 5f 33 20 30 20 65 6e |G$$_4 G$|$_3 0 en|
|000041b0| 64 70 20 31 20 32 20 63 | 64 64 72 5d 20 36 29 29 |dp 1 2 c|ddr] 6))|
|000041c0| 0a 0a 28 64 65 66 75 6e | 20 6d 65 6d 62 65 72 20 |..(defun| member |
|000041d0| 28 69 74 65 6d 20 6c 69 | 73 74 29 20 22 5c 0a 4c |(item li|st) "\.L|
|000041e0| 6f 6f 6b 20 66 6f 72 20 | 49 54 45 4d 20 69 6e 20 |ook for |ITEM in |
|000041f0| 4c 49 53 54 3b 20 72 65 | 74 75 72 6e 20 66 69 72 |LIST; re|turn fir|
|00004200| 73 74 20 6c 69 6e 6b 20 | 69 6e 20 4c 49 53 54 20 |st link |in LIST |
|00004210| 77 68 6f 73 65 20 63 61 | 72 20 69 73 20 60 65 71 |whose ca|r is `eq|
|00004220| 6c 27 20 74 6f 20 49 54 | 45 4d 2e 22 20 28 62 79 |l' to IT|EM." (by|
|00004230| 74 65 2d 63 6f 64 65 20 | 22 09 c3 c3 1c 1a 18 0a |te-code |".......|
|00004240| 86 0d 00 c7 08 21 3f 85 | 28 00 0d 08 40 3d 85 1f |.....!?.|(...@=..|
|00004250| 00 c6 89 12 88 08 89 14 | 88 08 41 89 10 88 82 06 |........|..A.....|
|00004260| 00 88 0c 2b 87 22 20 5b | 70 74 72 20 6c 69 73 74 |...+." [|ptr list|
|00004270| 20 64 6f 6e 65 20 6e 69 | 6c 20 72 65 73 75 6c 74 | done ni|l result|
|00004280| 20 69 74 65 6d 20 74 20 | 65 6e 64 70 5d 20 34 29 | item t |endp] 4)|
|00004290| 29 0a 0a 28 64 65 66 75 | 6e 20 62 75 74 6c 61 73 |)..(defu|n butlas|
|000042a0| 74 20 28 6c 69 73 74 20 | 26 6f 70 74 69 6f 6e 61 |t (list |&optiona|
|000042b0| 6c 20 6e 29 20 22 5c 0a | 52 65 74 75 72 6e 20 61 |l n) "\.|Return a|
|000042c0| 20 6e 65 77 20 6c 69 73 | 74 20 6c 69 6b 65 20 4c | new lis|t like L|
|000042d0| 49 53 54 20 62 75 74 20 | 73 61 6e 73 20 74 68 65 |IST but |sans the|
|000042e0| 20 6c 61 73 74 20 4e 20 | 65 6c 65 6d 65 6e 74 73 | last N |elements|
|000042f0| 2e 0a 4e 20 64 65 66 61 | 75 6c 74 73 20 74 6f 20 |..N defa|ults to |
|00004300| 31 2e 20 20 49 66 20 74 | 68 65 20 6c 69 73 74 20 |1. If t|he list |
|00004310| 64 6f 65 73 6e 27 74 20 | 68 61 76 65 20 4e 20 65 |doesn't |have N e|
|00004320| 6c 65 6d 65 6e 74 73 2c | 20 6e 69 6c 20 69 73 20 |lements,| nil is |
|00004330| 72 65 74 75 72 6e 65 64 | 2e 22 20 28 62 79 74 65 |returned|." (byte|
|00004340| 2d 63 6f 64 65 20 22 08 | 3f 85 08 00 c2 89 10 88 |-code ".|?.......|
|00004350| c3 c4 08 c3 09 21 5c 22 | 21 87 22 20 5b 6e 20 6c |.....!\"|!." [n l|
|00004360| 69 73 74 20 31 20 72 65 | 76 65 72 73 65 20 6e 74 |ist 1 re|verse nt|
|00004370| 68 63 64 72 5d 20 35 29 | 29 0a 0a 28 64 65 66 75 |hcdr] 5)|)..(defu|
|00004380| 6e 20 6c 69 73 74 2a 20 | 28 61 72 67 20 26 72 65 |n list* |(arg &re|
|00004390| 73 74 20 6f 74 68 65 72 | 73 29 20 22 5c 0a 52 65 |st other|s) "\.Re|
|000043a0| 74 75 72 6e 20 61 20 6e | 65 77 20 6c 69 73 74 20 |turn a n|ew list |
|000043b0| 63 6f 6e 74 61 69 6e 69 | 6e 67 20 74 68 65 20 66 |containi|ng the f|
|000043c0| 69 72 73 74 20 61 72 67 | 75 6d 65 6e 74 73 20 63 |irst arg|uments c|
|000043d0| 6f 6e 73 65 64 20 6f 6e | 74 6f 20 74 68 65 20 6c |onsed on|to the l|
|000043e0| 61 73 74 20 61 72 67 2e | 0a 54 68 75 73 2c 20 28 |ast arg.|.Thus, (|
|000043f0| 6c 69 73 74 2a 20 31 20 | 32 20 33 20 27 28 61 20 |list* 1 |2 3 '(a |
|00004400| 62 29 29 20 72 65 74 75 | 72 6e 73 20 28 31 20 32 |b)) retu|rns (1 2|
|00004410| 20 33 20 61 20 62 29 2e | 22 20 28 62 79 74 65 2d | 3 a b).|" (byte-|
|00004420| 63 6f 64 65 20 22 08 3f | 83 09 00 09 82 1f 00 09 |code ".?|........|
|00004430| 08 42 1a c5 0a 21 1b c6 | 0a 21 1c c7 c6 0b 21 0c |.B...!..|.!....!.|
|00004440| 40 5c 22 88 0b 2b 87 22 | 20 5b 6f 74 68 65 72 73 |@\"..+."| [others|
|00004450| 20 61 72 67 20 61 6c 6c | 61 72 67 73 20 66 72 6f | arg all|args fro|
|00004460| 6e 74 20 62 61 63 6b 20 | 62 75 74 6c 61 73 74 20 |nt back |butlast |
|00004470| 6c 61 73 74 20 72 70 6c | 61 63 64 5d 20 36 29 29 |last rpl|acd] 6))|
|00004480| 0a 0a 28 64 65 66 75 6e | 20 61 64 6a 6f 69 6e 20 |..(defun| adjoin |
|00004490| 28 69 74 65 6d 20 6c 69 | 73 74 29 20 22 5c 0a 52 |(item li|st) "\.R|
|000044a0| 65 74 75 72 6e 20 61 20 | 6c 69 73 74 20 77 68 69 |eturn a |list whi|
|000044b0| 63 68 20 63 6f 6e 74 61 | 69 6e 73 20 49 54 45 4d |ch conta|ins ITEM|
|000044c0| 20 62 75 74 20 69 73 20 | 6f 74 68 65 72 77 69 73 | but is |otherwis|
|000044d0| 65 20 6c 69 6b 65 20 4c | 49 53 54 2e 0a 49 66 20 |e like L|IST..If |
|000044e0| 49 54 45 4d 20 6f 63 63 | 75 72 73 20 69 6e 20 4c |ITEM occ|urs in L|
|000044f0| 49 53 54 2c 20 74 68 65 | 20 76 61 6c 75 65 20 69 |IST, the| value i|
|00004500| 73 20 4c 49 53 54 2e 20 | 20 4f 74 68 65 72 77 69 |s LIST. | Otherwi|
|00004510| 73 65 20 69 74 20 69 73 | 20 28 63 6f 6e 73 20 49 |se it is| (cons I|
|00004520| 54 45 4d 20 4c 49 53 54 | 29 2e 0a 57 68 65 6e 20 |TEM LIST|)..When |
|00004530| 63 6f 6d 70 61 72 69 6e | 67 20 49 54 45 4d 20 61 |comparin|g ITEM a|
|00004540| 67 61 69 6e 73 74 20 65 | 6c 65 6d 65 6e 74 73 2c |gainst e|lements,|
|00004550| 20 60 65 71 6c 27 20 69 | 73 20 75 73 65 64 2e 22 | `eql' i|s used."|
|00004560| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 c3 08 09 | (byte-c|ode "...|
|00004570| 5c 22 83 0b 00 09 82 0e | 00 08 09 42 87 22 20 5b |\"......|...B." [|
|00004580| 69 74 65 6d 20 6c 69 73 | 74 20 74 20 6d 65 6d 62 |item lis|t t memb|
|00004590| 65 72 5d 20 33 29 29 0a | 0a 28 64 65 66 75 6e 20 |er] 3)).|.(defun |
|000045a0| 6c 64 69 66 66 20 28 6c | 69 73 74 20 73 75 62 6c |ldiff (l|ist subl|
|000045b0| 69 73 74 29 20 22 5c 0a | 52 65 74 75 72 6e 20 61 |ist) "\.|Return a|
|000045c0| 20 6e 65 77 20 6c 69 73 | 74 20 6c 69 6b 65 20 4c | new lis|t like L|
|000045d0| 49 53 54 20 62 75 74 20 | 73 61 6e 73 20 53 55 42 |IST but |sans SUB|
|000045e0| 4c 49 53 54 2e 0a 53 55 | 42 4c 49 53 54 20 6d 75 |LIST..SU|BLIST mu|
|000045f0| 73 74 20 62 65 20 6f 6e | 65 20 6f 66 20 74 68 65 |st be on|e of the|
|00004600| 20 6c 69 6e 6b 73 20 69 | 6e 20 4c 49 53 54 3b 20 | links i|n LIST; |
|00004610| 6f 74 68 65 72 77 69 73 | 65 20 74 68 65 20 76 61 |otherwis|e the va|
|00004620| 6c 75 65 20 69 73 20 4c | 49 53 54 20 69 74 73 65 |lue is L|IST itse|
|00004630| 6c 66 2e 22 20 28 62 79 | 74 65 2d 63 6f 64 65 20 |lf." (by|te-code |
|00004640| 22 c5 0a 19 18 c6 09 21 | 86 0d 00 09 0b 3d 3f 85 |"......!|.....=?.|
|00004650| 25 00 09 40 08 42 89 10 | 88 09 41 1c 0c 89 11 88 |%..@.B..|..A.....|
|00004660| c5 29 88 82 04 00 88 c7 | 08 21 2a 87 22 20 5b 72 |.)......|.!*." [r|
|00004670| 65 73 75 6c 74 20 63 75 | 72 63 6f 6e 73 20 6c 69 |esult cu|rcons li|
|00004680| 73 74 20 73 75 62 6c 69 | 73 74 20 47 24 24 5f 35 |st subli|st G$$_5|
|00004690| 20 6e 69 6c 20 65 6e 64 | 70 20 72 65 76 65 72 73 | nil end|p revers|
|000046a0| 65 5d 20 34 29 29 0a 0a | 28 64 65 66 75 6e 20 63 |e] 4))..|(defun c|
|000046b0| 61 61 72 20 28 58 29 20 | 22 5c 0a 52 65 74 75 72 |aar (X) |"\.Retur|
|000046c0| 6e 20 74 68 65 20 63 61 | 72 20 6f 66 20 74 68 65 |n the ca|r of the|
|000046d0| 20 63 61 72 20 6f 66 20 | 58 2e 22 20 28 62 79 74 | car of |X." (byt|
|000046e0| 65 2d 63 6f 64 65 20 22 | 08 40 40 87 22 20 5b 58 |e-code "|.@@." [X|
|000046f0| 5d 20 31 29 29 0a 0a 28 | 64 65 66 75 6e 20 63 61 |] 1))..(|defun ca|
|00004700| 64 72 20 28 58 29 20 22 | 5c 0a 52 65 74 75 72 6e |dr (X) "|\.Return|
|00004710| 20 74 68 65 20 63 61 72 | 20 6f 66 20 74 68 65 20 | the car| of the |
|00004720| 63 64 72 20 6f 66 20 58 | 2e 22 20 28 62 79 74 65 |cdr of X|." (byte|
|00004730| 2d 63 6f 64 65 20 22 08 | 41 40 87 22 20 5b 58 5d |-code ".|A@." [X]|
|00004740| 20 31 29 29 0a 0a 28 64 | 65 66 75 6e 20 63 64 61 | 1))..(d|efun cda|
|00004750| 72 20 28 58 29 20 22 5c | 0a 52 65 74 75 72 6e 20 |r (X) "\|.Return |
|00004760| 74 68 65 20 63 64 72 20 | 6f 66 20 74 68 65 20 63 |the cdr |of the c|
|00004770| 61 72 20 6f 66 20 58 2e | 22 20 28 62 79 74 65 2d |ar of X.|" (byte-|
|00004780| 63 6f 64 65 20 22 08 40 | 41 87 22 20 5b 58 5d 20 |code ".@|A." [X] |
|00004790| 31 29 29 0a 0a 28 64 65 | 66 75 6e 20 63 64 64 72 |1))..(de|fun cddr|
|000047a0| 20 28 58 29 20 22 5c 0a | 52 65 74 75 72 6e 20 74 | (X) "\.|Return t|
|000047b0| 68 65 20 63 64 72 20 6f | 66 20 74 68 65 20 63 64 |he cdr o|f the cd|
|000047c0| 72 20 6f 66 20 58 2e 22 | 20 28 62 79 74 65 2d 63 |r of X."| (byte-c|
|000047d0| 6f 64 65 20 22 08 41 41 | 87 22 20 5b 58 5d 20 31 |ode ".AA|." [X] 1|
|000047e0| 29 29 0a 0a 28 64 65 66 | 75 6e 20 63 61 61 61 72 |))..(def|un caaar|
|000047f0| 20 28 58 29 20 22 5c 0a | 52 65 74 75 72 6e 20 74 | (X) "\.|Return t|
|00004800| 68 65 20 63 61 72 20 6f | 66 20 74 68 65 20 63 61 |he car o|f the ca|
|00004810| 72 20 6f 66 20 74 68 65 | 20 63 61 72 20 6f 66 20 |r of the| car of |
|00004820| 58 2e 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |X." (byt|e-code "|
|00004830| 08 40 40 40 87 22 20 5b | 58 5d 20 31 29 29 0a 0a |.@@@." [|X] 1))..|
|00004840| 28 64 65 66 75 6e 20 63 | 61 61 64 72 20 28 58 29 |(defun c|aadr (X)|
|00004850| 20 22 5c 0a 52 65 74 75 | 72 6e 20 74 68 65 20 63 | "\.Retu|rn the c|
|00004860| 61 72 20 6f 66 20 74 68 | 65 20 63 61 72 20 6f 66 |ar of th|e car of|
|00004870| 20 74 68 65 20 63 64 72 | 20 6f 66 20 58 2e 22 20 | the cdr| of X." |
|00004880| 28 62 79 74 65 2d 63 6f | 64 65 20 22 08 41 40 40 |(byte-co|de ".A@@|
|00004890| 87 22 20 5b 58 5d 20 31 | 29 29 0a 0a 28 64 65 66 |." [X] 1|))..(def|
|000048a0| 75 6e 20 63 61 64 61 72 | 20 28 58 29 20 22 5c 0a |un cadar| (X) "\.|
|000048b0| 52 65 74 75 72 6e 20 74 | 68 65 20 63 61 72 20 6f |Return t|he car o|
|000048c0| 66 20 74 68 65 20 63 64 | 72 20 6f 66 20 74 68 65 |f the cd|r of the|
|000048d0| 20 63 61 72 20 6f 66 20 | 58 2e 22 20 28 62 79 74 | car of |X." (byt|
|000048e0| 65 2d 63 6f 64 65 20 22 | 08 40 41 40 87 22 20 5b |e-code "|.@A@." [|
|000048f0| 58 5d 20 31 29 29 0a 0a | 28 64 65 66 75 6e 20 63 |X] 1))..|(defun c|
|00004900| 64 61 61 72 20 28 58 29 | 20 22 5c 0a 52 65 74 75 |daar (X)| "\.Retu|
|00004910| 72 6e 20 74 68 65 20 63 | 64 72 20 6f 66 20 74 68 |rn the c|dr of th|
|00004920| 65 20 63 61 72 20 6f 66 | 20 74 68 65 20 63 61 72 |e car of| the car|
|00004930| 20 6f 66 20 58 2e 22 20 | 28 62 79 74 65 2d 63 6f | of X." |(byte-co|
|00004940| 64 65 20 22 08 40 40 41 | 87 22 20 5b 58 5d 20 31 |de ".@@A|." [X] 1|
|00004950| 29 29 0a 0a 28 64 65 66 | 75 6e 20 63 61 64 64 72 |))..(def|un caddr|
|00004960| 20 28 58 29 20 22 5c 0a | 52 65 74 75 72 6e 20 74 | (X) "\.|Return t|
|00004970| 68 65 20 63 61 72 20 6f | 66 20 74 68 65 20 63 64 |he car o|f the cd|
|00004980| 72 20 6f 66 20 74 68 65 | 20 63 64 72 20 6f 66 20 |r of the| cdr of |
|00004990| 58 2e 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |X." (byt|e-code "|
|000049a0| 08 41 41 40 87 22 20 5b | 58 5d 20 31 29 29 0a 0a |.AA@." [|X] 1))..|
|000049b0| 28 64 65 66 75 6e 20 63 | 64 61 64 72 20 28 58 29 |(defun c|dadr (X)|
|000049c0| 20 22 5c 0a 52 65 74 75 | 72 6e 20 74 68 65 20 63 | "\.Retu|rn the c|
|000049d0| 64 72 20 6f 66 20 74 68 | 65 20 63 61 72 20 6f 66 |dr of th|e car of|
|000049e0| 20 74 68 65 20 63 64 72 | 20 6f 66 20 58 2e 22 20 | the cdr| of X." |
|000049f0| 28 62 79 74 65 2d 63 6f | 64 65 20 22 08 41 40 41 |(byte-co|de ".A@A|
|00004a00| 87 22 20 5b 58 5d 20 31 | 29 29 0a 0a 28 64 65 66 |." [X] 1|))..(def|
|00004a10| 75 6e 20 63 64 64 61 72 | 20 28 58 29 20 22 5c 0a |un cddar| (X) "\.|
|00004a20| 52 65 74 75 72 6e 20 74 | 68 65 20 63 64 72 20 6f |Return t|he cdr o|
|00004a30| 66 20 74 68 65 20 63 64 | 72 20 6f 66 20 74 68 65 |f the cd|r of the|
|00004a40| 20 63 61 72 20 6f 66 20 | 58 2e 22 20 28 62 79 74 | car of |X." (byt|
|00004a50| 65 2d 63 6f 64 65 20 22 | 08 40 41 41 87 22 20 5b |e-code "|.@AA." [|
|00004a60| 58 5d 20 31 29 29 0a 0a | 28 64 65 66 75 6e 20 63 |X] 1))..|(defun c|
|00004a70| 64 64 64 72 20 28 58 29 | 20 22 5c 0a 52 65 74 75 |dddr (X)| "\.Retu|
|00004a80| 72 6e 20 74 68 65 20 63 | 64 72 20 6f 66 20 74 68 |rn the c|dr of th|
|00004a90| 65 20 63 64 72 20 6f 66 | 20 74 68 65 20 63 64 72 |e cdr of| the cdr|
|00004aa0| 20 6f 66 20 58 2e 22 20 | 28 62 79 74 65 2d 63 6f | of X." |(byte-co|
|00004ab0| 64 65 20 22 08 41 41 41 | 87 22 20 5b 58 5d 20 31 |de ".AAA|." [X] 1|
|00004ac0| 29 29 0a 0a 28 64 65 66 | 75 6e 20 63 61 61 61 61 |))..(def|un caaaa|
|00004ad0| 72 20 28 58 29 20 22 5c | 0a 52 65 74 75 72 6e 20 |r (X) "\|.Return |
|00004ae0| 74 68 65 20 63 61 72 20 | 6f 66 20 74 68 65 20 63 |the car |of the c|
|00004af0| 61 72 20 6f 66 20 74 68 | 65 20 63 61 72 20 6f 66 |ar of th|e car of|
|00004b00| 20 74 68 65 20 63 61 72 | 20 6f 66 20 58 2e 22 20 | the car| of X." |
|00004b10| 28 62 79 74 65 2d 63 6f | 64 65 20 22 08 40 40 40 |(byte-co|de ".@@@|
|00004b20| 40 87 22 20 5b 58 5d 20 | 31 29 29 0a 0a 28 64 65 |@." [X] |1))..(de|
|00004b30| 66 75 6e 20 63 61 61 61 | 64 72 20 28 58 29 20 22 |fun caaa|dr (X) "|
|00004b40| 5c 0a 52 65 74 75 72 6e | 20 74 68 65 20 63 61 72 |\.Return| the car|
|00004b50| 20 6f 66 20 74 68 65 20 | 63 61 72 20 6f 66 20 74 | of the |car of t|
|00004b60| 68 65 20 63 61 72 20 6f | 66 20 74 68 65 20 63 64 |he car o|f the cd|
|00004b70| 72 20 6f 66 20 58 2e 22 | 20 28 62 79 74 65 2d 63 |r of X."| (byte-c|
|00004b80| 6f 64 65 20 22 08 41 40 | 40 40 87 22 20 5b 58 5d |ode ".A@|@@." [X]|
|00004b90| 20 31 29 29 0a 0a 28 64 | 65 66 75 6e 20 63 61 61 | 1))..(d|efun caa|
|00004ba0| 64 61 72 20 28 58 29 20 | 22 5c 0a 52 65 74 75 72 |dar (X) |"\.Retur|
|00004bb0| 6e 20 74 68 65 20 63 61 | 72 20 6f 66 20 74 68 65 |n the ca|r of the|
|00004bc0| 20 63 61 72 20 6f 66 20 | 74 68 65 20 63 64 72 20 | car of |the cdr |
|00004bd0| 6f 66 20 74 68 65 20 63 | 61 72 20 6f 66 20 58 2e |of the c|ar of X.|
|00004be0| 22 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 08 40 |" (byte-|code ".@|
|00004bf0| 41 40 40 87 22 20 5b 58 | 5d 20 31 29 29 0a 0a 28 |A@@." [X|] 1))..(|
|00004c00| 64 65 66 75 6e 20 63 61 | 64 61 61 72 20 28 58 29 |defun ca|daar (X)|
|00004c10| 20 22 5c 0a 52 65 74 75 | 72 6e 20 74 68 65 20 63 | "\.Retu|rn the c|
|00004c20| 61 72 20 6f 66 20 74 68 | 65 20 63 64 72 20 6f 66 |ar of th|e cdr of|
|00004c30| 20 74 68 65 20 63 61 72 | 20 6f 66 20 74 68 65 20 | the car| of the |
|00004c40| 63 61 72 20 6f 66 20 58 | 2e 22 20 28 62 79 74 65 |car of X|." (byte|
|00004c50| 2d 63 6f 64 65 20 22 08 | 40 40 41 40 87 22 20 5b |-code ".|@@A@." [|
|00004c60| 58 5d 20 31 29 29 0a 0a | 28 64 65 66 75 6e 20 63 |X] 1))..|(defun c|
|00004c70| 64 61 61 61 72 20 28 58 | 29 20 22 5c 0a 52 65 74 |daaar (X|) "\.Ret|
|00004c80| 75 72 6e 20 74 68 65 20 | 63 64 72 20 6f 66 20 74 |urn the |cdr of t|
|00004c90| 68 65 20 63 61 72 20 6f | 66 20 74 68 65 20 63 61 |he car o|f the ca|
|00004ca0| 72 20 6f 66 20 74 68 65 | 20 63 61 72 20 6f 66 20 |r of the| car of |
|00004cb0| 58 2e 22 20 28 62 79 74 | 65 2d 63 6f 64 65 20 22 |X." (byt|e-code "|
|00004cc0| 08 40 40 40 41 87 22 20 | 5b 58 5d 20 31 29 29 0a |.@@@A." |[X] 1)).|
|00004cd0| 0a 28 64 65 66 75 6e 20 | 63 61 61 64 64 72 20 28 |.(defun |caaddr (|
|00004ce0| 58 29 20 22 5c 0a 52 65 | 74 75 72 6e 20 74 68 65 |X) "\.Re|turn the|
|00004cf0| 20 63 61 72 20 6f 66 20 | 74 68 65 20 63 61 72 20 | car of |the car |
|00004d00| 6f 66 20 74 68 65 20 63 | 64 72 20 6f 66 20 74 68 |of the c|dr of th|
|00004d10| 65 20 63 64 72 20 6f 66 | 20 58 2e 22 20 28 62 79 |e cdr of| X." (by|
|00004d20| 74 65 2d 63 6f 64 65 20 | 22 08 41 41 40 40 87 22 |te-code |".AA@@."|
|00004d30| 20 5b 58 5d 20 31 29 29 | 0a 0a 28 64 65 66 75 6e | [X] 1))|..(defun|
|00004d40| 20 63 61 64 61 64 72 20 | 28 58 29 20 22 5c 0a 52 | cadadr |(X) "\.R|
|00004d50| 65 74 75 72 6e 20 74 68 | 65 20 63 61 72 20 6f 66 |eturn th|e car of|
|00004d60| 20 74 68 65 20 63 64 72 | 20 6f 66 20 74 68 65 20 | the cdr| of the |
|00004d70| 63 61 72 20 6f 66 20 74 | 68 65 20 63 64 72 20 6f |car of t|he cdr o|
|00004d80| 66 20 58 2e 22 20 28 62 | 79 74 65 2d 63 6f 64 65 |f X." (b|yte-code|
|00004d90| 20 22 08 41 40 41 40 87 | 22 20 5b 58 5d 20 31 29 | ".A@A@.|" [X] 1)|
|00004da0| 29 0a 0a 28 64 65 66 75 | 6e 20 63 64 61 61 64 72 |)..(defu|n cdaadr|
|00004db0| 20 28 58 29 20 22 5c 0a | 52 65 74 75 72 6e 20 74 | (X) "\.|Return t|
|00004dc0| 68 65 20 63 64 72 20 6f | 66 20 74 68 65 20 63 61 |he cdr o|f the ca|
|00004dd0| 72 20 6f 66 20 74 68 65 | 20 63 61 72 20 6f 66 20 |r of the| car of |
|00004de0| 74 68 65 20 63 64 72 20 | 6f 66 20 58 2e 22 20 28 |the cdr |of X." (|
|00004df0| 62 79 74 65 2d 63 6f 64 | 65 20 22 08 41 40 40 41 |byte-cod|e ".A@@A|
|00004e00| 87 22 20 5b 58 5d 20 31 | 29 29 0a 0a 28 64 65 66 |." [X] 1|))..(def|
|00004e10| 75 6e 20 63 61 64 64 61 | 72 20 28 58 29 20 22 5c |un cadda|r (X) "\|
|00004e20| 0a 52 65 74 75 72 6e 20 | 74 68 65 20 63 61 72 20 |.Return |the car |
|00004e30| 6f 66 20 74 68 65 20 63 | 64 72 20 6f 66 20 74 68 |of the c|dr of th|
|00004e40| 65 20 63 64 72 20 6f 66 | 20 74 68 65 20 63 61 72 |e cdr of| the car|
|00004e50| 20 6f 66 20 58 2e 22 20 | 28 62 79 74 65 2d 63 6f | of X." |(byte-co|
|00004e60| 64 65 20 22 08 40 41 41 | 40 87 22 20 5b 58 5d 20 |de ".@AA|@." [X] |
|00004e70| 31 29 29 0a 0a 28 64 65 | 66 75 6e 20 63 64 61 64 |1))..(de|fun cdad|
|00004e80| 61 72 20 28 58 29 20 22 | 5c 0a 52 65 74 75 72 6e |ar (X) "|\.Return|
|00004e90| 20 74 68 65 20 63 64 72 | 20 6f 66 20 74 68 65 20 | the cdr| of the |
|00004ea0| 63 61 72 20 6f 66 20 74 | 68 65 20 63 64 72 20 6f |car of t|he cdr o|
|00004eb0| 66 20 74 68 65 20 63 61 | 72 20 6f 66 20 58 2e 22 |f the ca|r of X."|
|00004ec0| 20 28 62 79 74 65 2d 63 | 6f 64 65 20 22 08 40 41 | (byte-c|ode ".@A|
|00004ed0| 40 41 87 22 20 5b 58 5d | 20 31 29 29 0a 0a 28 64 |@A." [X]| 1))..(d|
|00004ee0| 65 66 75 6e 20 63 64 64 | 61 61 72 20 28 58 29 20 |efun cdd|aar (X) |
|00004ef0| 22 5c 0a 52 65 74 75 72 | 6e 20 74 68 65 20 63 64 |"\.Retur|n the cd|
|00004f00| 72 20 6f 66 20 74 68 65 | 20 63 64 72 20 6f 66 20 |r of the| cdr of |
|00004f10| 74 68 65 20 63 61 72 20 | 6f 66 20 74 68 65 20 63 |the car |of the c|
|00004f20| 61 72 20 6f 66 20 58 2e | 22 20 28 62 79 74 65 2d |ar of X.|" (byte-|
|00004f30| 63 6f 64 65 20 22 08 40 | 40 41 41 87 22 20 5b 58 |code ".@|@AA." [X|
|00004f40| 5d 20 31 29 29 0a 0a 28 | 64 65 66 75 6e 20 63 61 |] 1))..(|defun ca|
|00004f50| 64 64 64 72 20 28 58 29 | 20 22 5c 0a 52 65 74 75 |dddr (X)| "\.Retu|
|00004f60| 72 6e 20 74 68 65 20 63 | 61 72 20 6f 66 20 74 68 |rn the c|ar of th|
|00004f70| 65 20 63 64 72 20 6f 66 | 20 74 68 65 20 63 64 72 |e cdr of| the cdr|
|00004f80| 20 6f 66 20 74 68 65 20 | 63 64 72 20 6f 66 20 58 | of the |cdr of X|
|00004f90| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 08 |." (byte|-code ".|
|00004fa0| 41 41 41 40 87 22 20 5b | 58 5d 20 31 29 29 0a 0a |AAA@." [|X] 1))..|
|00004fb0| 28 64 65 66 75 6e 20 63 | 64 64 61 64 72 20 28 58 |(defun c|ddadr (X|
|00004fc0| 29 20 22 5c 0a 52 65 74 | 75 72 6e 20 74 68 65 20 |) "\.Ret|urn the |
|00004fd0| 63 64 72 20 6f 66 20 74 | 68 65 20 63 64 72 20 6f |cdr of t|he cdr o|
|00004fe0| 66 20 74 68 65 20 63 61 | 72 20 6f 66 20 74 68 65 |f the ca|r of the|
|00004ff0| 20 63 64 72 20 6f 66 20 | 58 2e 22 20 28 62 79 74 | cdr of |X." (byt|
|00005000| 65 2d 63 6f 64 65 20 22 | 08 41 40 41 41 87 22 20 |e-code "|.A@AA." |
|00005010| 5b 58 5d 20 31 29 29 0a | 0a 28 64 65 66 75 6e 20 |[X] 1)).|.(defun |
|00005020| 63 64 61 64 64 72 20 28 | 58 29 20 22 5c 0a 52 65 |cdaddr (|X) "\.Re|
|00005030| 74 75 72 6e 20 74 68 65 | 20 63 64 72 20 6f 66 20 |turn the| cdr of |
|00005040| 74 68 65 20 63 61 72 20 | 6f 66 20 74 68 65 20 63 |the car |of the c|
|00005050| 64 72 20 6f 66 20 74 68 | 65 20 63 64 72 20 6f 66 |dr of th|e cdr of|
|00005060| 20 58 2e 22 20 28 62 79 | 74 65 2d 63 6f 64 65 20 | X." (by|te-code |
|00005070| 22 08 41 41 40 41 87 22 | 20 5b 58 5d 20 31 29 29 |".AA@A."| [X] 1))|
|00005080| 0a 0a 28 64 65 66 75 6e | 20 63 64 64 64 61 72 20 |..(defun| cdddar |
|00005090| 28 58 29 20 22 5c 0a 52 | 65 74 75 72 6e 20 74 68 |(X) "\.R|eturn th|
|000050a0| 65 20 63 64 72 20 6f 66 | 20 74 68 65 20 63 64 72 |e cdr of| the cdr|
|000050b0| 20 6f 66 20 74 68 65 20 | 63 64 72 20 6f 66 20 74 | of the |cdr of t|
|000050c0| 68 65 20 63 61 72 20 6f | 66 20 58 2e 22 20 28 62 |he car o|f X." (b|
|000050d0| 79 74 65 2d 63 6f 64 65 | 20 22 08 40 41 41 41 87 |yte-code| ".@AAA.|
|000050e0| 22 20 5b 58 5d 20 31 29 | 29 0a 0a 28 64 65 66 75 |" [X] 1)|)..(defu|
|000050f0| 6e 20 63 64 64 64 64 72 | 20 28 58 29 20 22 5c 0a |n cddddr| (X) "\.|
|00005100| 52 65 74 75 72 6e 20 74 | 68 65 20 63 64 72 20 6f |Return t|he cdr o|
|00005110| 66 20 74 68 65 20 63 64 | 72 20 6f 66 20 74 68 65 |f the cd|r of the|
|00005120| 20 63 64 72 20 6f 66 20 | 74 68 65 20 63 64 72 20 | cdr of |the cdr |
|00005130| 6f 66 20 58 2e 22 20 28 | 62 79 74 65 2d 63 6f 64 |of X." (|byte-cod|
|00005140| 65 20 22 08 41 41 41 41 | 87 22 20 5b 58 5d 20 31 |e ".AAAA|." [X] 1|
|00005150| 29 29 0a 0a 28 64 65 66 | 75 6e 20 73 65 74 6e 74 |))..(def|un setnt|
|00005160| 68 20 28 6e 20 6c 69 73 | 74 20 6e 65 77 76 61 6c |h (n lis|t newval|
|00005170| 29 20 22 5c 0a 53 65 74 | 20 28 6e 74 68 20 4e 20 |) "\.Set| (nth N |
|00005180| 4c 49 53 54 29 20 74 6f | 20 4e 45 57 56 41 4c 2e |LIST) to| NEWVAL.|
|00005190| 20 20 52 65 74 75 72 6e | 73 20 4e 45 57 56 41 4c | Return|s NEWVAL|
|000051a0| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 c3 |." (byte|-code ".|
|000051b0| c4 08 09 5c 22 0a 5c 22 | 87 22 20 5b 6e 20 6c 69 |...\".\"|." [n li|
|000051c0| 73 74 20 6e 65 77 76 61 | 6c 20 72 70 6c 61 63 61 |st newva|l rplaca|
|000051d0| 20 6e 74 68 63 64 72 5d | 20 34 29 29 0a 0a 28 64 | nthcdr]| 4))..(d|
|000051e0| 65 66 75 6e 20 73 65 74 | 6e 74 68 63 64 72 20 28 |efun set|nthcdr (|
|000051f0| 6e 20 6c 69 73 74 20 6e | 65 77 76 61 6c 29 20 22 |n list n|ewval) "|
|00005200| 5c 0a 53 45 54 4e 54 48 | 43 44 52 20 4e 20 4c 49 |\.SETNTH|CDR N LI|
|00005210| 53 54 20 4e 45 57 56 41 | 4c 20 3d 3e 20 4e 45 57 |ST NEWVA|L => NEW|
|00005220| 56 41 4c 0a 41 73 20 61 | 20 73 69 64 65 20 65 66 |VAL.As a| side ef|
|00005230| 66 65 63 74 2c 20 73 65 | 74 73 20 74 68 65 20 4e |fect, se|ts the N|
|00005240| 74 68 20 63 64 72 20 6f | 66 20 4c 49 53 54 20 74 |th cdr o|f LIST t|
|00005250| 6f 20 4e 45 57 56 41 4c | 2e 22 20 28 62 79 74 65 |o NEWVAL|." (byte|
|00005260| 2d 63 6f 64 65 20 22 08 | c4 57 83 0d 00 c5 c6 08 |-code ".|.W......|
|00005270| 5c 22 82 2c 00 08 c4 55 | 83 23 00 c7 09 0a 40 5c |\".,...U|.#....@\|
|00005280| 22 88 c8 09 0a 41 5c 22 | 88 0a 82 2c 00 c8 c9 08 |"....A\"|...,....|
|00005290| ca 5a 09 5c 22 0a 5c 22 | 87 22 20 5b 6e 20 6c 69 |.Z.\".\"|." [n li|
|000052a0| 73 74 20 6e 65 77 76 61 | 6c 20 74 20 30 20 65 72 |st newva|l t 0 er|
|000052b0| 72 6f 72 20 22 4e 20 6d | 75 73 74 20 62 65 20 30 |ror "N m|ust be 0|
|000052c0| 20 6f 72 20 67 72 65 61 | 74 65 72 2c 20 6e 6f 74 | or grea|ter, not|
|000052d0| 20 25 64 22 20 72 70 6c | 61 63 61 20 72 70 6c 61 | %d" rpl|aca rpla|
|000052e0| 63 64 20 6e 74 68 63 64 | 72 20 31 5d 20 37 29 29 |cd nthcd|r 1] 7))|
|000052f0| 0a 0a 28 64 65 66 75 6e | 20 61 63 6f 6e 73 20 28 |..(defun| acons (|
|00005300| 6b 65 79 20 69 74 65 6d | 20 61 6c 69 73 74 29 20 |key item| alist) |
|00005310| 22 5c 0a 52 65 74 75 72 | 6e 20 61 20 6e 65 77 20 |"\.Retur|n a new |
|00005320| 61 6c 69 73 74 20 77 69 | 74 68 20 4b 45 59 20 70 |alist wi|th KEY p|
|00005330| 61 69 72 65 64 20 77 69 | 74 68 20 49 54 45 4d 3b |aired wi|th ITEM;|
|00005340| 20 6f 74 68 65 72 77 69 | 73 65 20 6c 69 6b 65 20 | otherwi|se like |
|00005350| 41 4c 49 53 54 2e 0a 44 | 6f 65 73 20 6e 6f 74 20 |ALIST..D|oes not |
|00005360| 63 6f 70 79 20 41 4c 49 | 53 54 2e 22 20 28 62 79 |copy ALI|ST." (by|
|00005370| 74 65 2d 63 6f 64 65 20 | 22 08 09 42 0a 42 87 22 |te-code |"..B.B."|
|00005380| 20 5b 6b 65 79 20 69 74 | 65 6d 20 61 6c 69 73 74 | [key it|em alist|
|00005390| 5d 20 32 29 29 0a 0a 28 | 64 65 66 75 6e 20 70 61 |] 2))..(|defun pa|
|000053a0| 69 72 6c 69 73 20 28 6b | 65 79 73 20 64 61 74 61 |irlis (k|eys data|
|000053b0| 20 26 6f 70 74 69 6f 6e | 61 6c 20 61 6c 69 73 74 | &option|al alist|
|000053c0| 29 20 22 5c 0a 52 65 74 | 75 72 6e 20 61 20 6e 65 |) "\.Ret|urn a ne|
|000053d0| 77 20 61 6c 69 73 74 20 | 77 69 74 68 20 65 61 63 |w alist |with eac|
|000053e0| 68 20 65 6c 74 20 6f 66 | 20 4b 45 59 53 20 70 61 |h elt of| KEYS pa|
|000053f0| 69 72 65 64 20 77 69 74 | 68 20 61 6e 20 65 6c 74 |ired wit|h an elt|
|00005400| 20 6f 66 20 44 41 54 41 | 3b 0a 6f 70 74 69 6f 6e | of DATA|;.option|
|00005410| 61 6c 20 33 72 64 20 61 | 72 67 20 41 4c 49 53 54 |al 3rd a|rg ALIST|
|00005420| 20 69 73 20 6e 63 6f 6e | 63 27 64 20 61 74 20 74 | is ncon|c'd at t|
|00005430| 68 65 20 65 6e 64 2e 20 | 20 4b 45 59 53 20 61 6e |he end. | KEYS an|
|00005440| 64 20 44 41 54 41 20 6d | 75 73 74 0a 68 61 76 65 |d DATA m|ust.have|
|00005450| 20 74 68 65 20 73 61 6d | 65 20 6c 65 6e 67 74 68 | the sam|e length|
|00005460| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 08 |." (byte|-code ".|
|00005470| 47 09 47 55 83 0c 00 c2 | 82 0f 00 c9 ca 21 88 08 |G.GU....|.....!..|
|00005480| 1b 09 1c 0b 40 1d 0c 40 | 1e 06 0e 08 1e 07 cb 0b |....@..@|........|
|00005490| 21 3f 85 43 00 cc 0d 0e | 06 0e 07 23 89 16 07 88 |!?.C....|...#....|
|000054a0| 0b 41 13 0c 41 14 0b 40 | 15 0c 40 89 16 06 88 82 |.A..A..@|..@.....|
|000054b0| 1f 00 88 0e 07 2d 87 22 | 20 5b 6b 65 79 73 20 64 |.....-."| [keys d|
|000054c0| 61 74 61 20 6e 69 6c 20 | 6b 70 74 72 20 64 70 74 |ata nil |kptr dpt|
|000054d0| 72 20 6b 65 79 20 69 74 | 65 6d 20 72 65 73 75 6c |r key it|em resul|
|000054e0| 74 20 61 6c 69 73 74 20 | 65 72 72 6f 72 20 22 4b |t alist |error "K|
|000054f0| 65 79 73 20 61 6e 64 20 | 64 61 74 61 20 73 68 6f |eys and |data sho|
|00005500| 75 6c 64 20 62 65 20 74 | 68 65 20 73 61 6d 65 20 |uld be t|he same |
|00005510| 6c 65 6e 67 74 68 22 20 | 65 6e 64 70 20 61 63 6f |length" |endp aco|
|00005520| 6e 73 5d 20 37 29 29 0a | 0a 28 64 65 66 6b 65 79 |ns] 7)).|.(defkey|
|00005530| 77 6f 72 64 20 3a 74 65 | 73 74 20 22 55 73 65 64 |word :te|st "Used|
|00005540| 20 74 6f 20 64 65 73 69 | 67 6e 61 74 65 20 70 6f | to desi|gnate po|
|00005550| 73 69 74 69 76 65 20 28 | 73 65 6c 65 63 74 69 6f |sitive (|selectio|
|00005560| 6e 29 20 74 65 73 74 73 | 2e 22 29 0a 0a 28 64 65 |n) tests|.")..(de|
|00005570| 66 6b 65 79 77 6f 72 64 | 20 3a 74 65 73 74 2d 6e |fkeyword| :test-n|
|00005580| 6f 74 20 22 55 73 65 64 | 20 74 6f 20 64 65 73 69 |ot "Used| to desi|
|00005590| 67 6e 61 74 65 20 6e 65 | 67 61 74 69 76 65 20 28 |gnate ne|gative (|
|000055a0| 72 65 6a 65 63 74 69 6f | 6e 29 20 74 65 73 74 73 |rejectio|n) tests|
|000055b0| 2e 22 29 0a 0a 28 64 65 | 66 6b 65 79 77 6f 72 64 |.")..(de|fkeyword|
|000055c0| 20 3a 6b 65 79 20 22 55 | 73 65 64 20 74 6f 20 64 | :key "U|sed to d|
|000055d0| 65 73 69 67 6e 61 74 65 | 20 63 6f 6d 70 6f 6e 65 |esignate| compone|
|000055e0| 6e 74 20 65 78 74 72 61 | 63 74 69 6f 6e 73 2e 22 |nt extra|ctions."|
|000055f0| 29 0a 0a 28 64 65 66 6b | 65 79 77 6f 72 64 20 3a |)..(defk|eyword :|
|00005600| 70 72 65 64 69 63 61 74 | 65 20 22 55 73 65 64 20 |predicat|e "Used |
|00005610| 74 6f 20 64 65 66 69 6e | 65 20 6d 61 74 63 68 69 |to defin|e matchi|
|00005620| 6e 67 20 6f 66 20 73 65 | 71 75 65 6e 63 65 20 63 |ng of se|quence c|
|00005630| 6f 6d 70 6f 6e 65 6e 74 | 73 2e 22 29 0a 0a 28 64 |omponent|s.")..(d|
|00005640| 65 66 6b 65 79 77 6f 72 | 64 20 3a 73 74 61 72 74 |efkeywor|d :start|
|00005650| 20 22 49 6e 63 6c 75 73 | 69 76 65 20 6c 6f 77 20 | "Inclus|ive low |
|00005660| 69 6e 64 65 78 20 69 6e | 20 73 65 71 75 65 6e 63 |index in| sequenc|
|00005670| 65 22 29 0a 0a 28 64 65 | 66 6b 65 79 77 6f 72 64 |e")..(de|fkeyword|
|00005680| 20 3a 65 6e 64 20 22 45 | 78 63 6c 75 73 69 76 65 | :end "E|xclusive|
|00005690| 20 68 69 67 68 20 69 6e | 64 65 78 20 69 6e 20 73 | high in|dex in s|
|000056a0| 65 71 75 65 6e 63 65 22 | 29 0a 0a 28 64 65 66 6b |equence"|)..(defk|
|000056b0| 65 79 77 6f 72 64 20 3a | 73 74 61 72 74 31 20 22 |eyword :|start1 "|
|000056c0| 49 6e 63 6c 75 73 69 76 | 65 20 6c 6f 77 20 69 6e |Inclusiv|e low in|
|000056d0| 64 65 78 20 69 6e 20 66 | 69 72 73 74 20 6f 66 20 |dex in f|irst of |
|000056e0| 74 77 6f 20 73 65 71 75 | 65 6e 63 65 73 2e 22 29 |two sequ|ences.")|
|000056f0| 0a 0a 28 64 65 66 6b 65 | 79 77 6f 72 64 20 3a 73 |..(defke|yword :s|
|00005700| 74 61 72 74 32 20 22 49 | 6e 63 6c 75 73 69 76 65 |tart2 "I|nclusive|
|00005710| 20 6c 6f 77 20 69 6e 64 | 65 78 20 69 6e 20 73 65 | low ind|ex in se|
|00005720| 63 6f 6e 64 20 6f 66 20 | 74 77 6f 20 73 65 71 75 |cond of |two sequ|
|00005730| 65 6e 63 65 73 2e 22 29 | 0a 0a 28 64 65 66 6b 65 |ences.")|..(defke|
|00005740| 79 77 6f 72 64 20 3a 65 | 6e 64 31 20 22 45 78 63 |yword :e|nd1 "Exc|
|00005750| 6c 75 73 69 76 65 20 68 | 69 67 68 20 69 6e 64 65 |lusive h|igh inde|
|00005760| 78 20 69 6e 20 66 69 72 | 73 74 20 6f 66 20 74 77 |x in fir|st of tw|
|00005770| 6f 20 73 65 71 75 65 6e | 63 65 73 2e 22 29 0a 0a |o sequen|ces.")..|
|00005780| 28 64 65 66 6b 65 79 77 | 6f 72 64 20 3a 65 6e 64 |(defkeyw|ord :end|
|00005790| 32 20 22 45 78 63 6c 75 | 73 69 76 65 20 68 69 67 |2 "Exclu|sive hig|
|000057a0| 68 20 69 6e 64 65 78 20 | 69 6e 20 73 65 63 6f 6e |h index |in secon|
|000057b0| 64 20 6f 66 20 74 77 6f | 20 73 65 71 75 65 6e 63 |d of two| sequenc|
|000057c0| 65 73 2e 22 29 0a 0a 28 | 64 65 66 6b 65 79 77 6f |es.")..(|defkeywo|
|000057d0| 72 64 20 3a 63 6f 75 6e | 74 20 22 4e 75 6d 62 65 |rd :coun|t "Numbe|
|000057e0| 72 20 6f 66 20 65 6c 65 | 6d 65 6e 74 73 20 74 6f |r of ele|ments to|
|000057f0| 20 61 66 66 65 63 74 2e | 22 29 0a 0a 28 64 65 66 | affect.|")..(def|
|00005800| 6b 65 79 77 6f 72 64 20 | 3a 66 72 6f 6d 2d 65 6e |keyword |:from-en|
|00005810| 64 20 22 54 20 77 68 65 | 6e 20 63 6f 75 6e 74 69 |d "T whe|n counti|
|00005820| 6e 67 20 62 61 63 6b 77 | 61 72 64 73 2e 22 29 0a |ng backw|ards.").|
|00005830| 0a 28 64 65 66 75 6e 20 | 73 6f 6d 65 20 28 70 72 |.(defun |some (pr|
|00005840| 65 64 20 73 65 71 20 26 | 72 65 73 74 20 6d 6f 72 |ed seq &|rest mor|
|00005850| 65 73 65 71 73 29 20 22 | 5c 0a 54 65 73 74 20 50 |eseqs) "|\.Test P|
|00005860| 52 45 44 49 43 41 54 45 | 20 6f 6e 20 65 61 63 68 |REDICATE| on each|
|00005870| 20 65 6c 65 6d 65 6e 74 | 20 6f 66 20 53 45 51 55 | element| of SEQU|
|00005880| 45 4e 43 45 3b 20 69 73 | 20 69 74 20 65 76 65 72 |ENCE; is| it ever|
|00005890| 20 6e 6f 6e 2d 6e 69 6c | 3f 0a 45 78 74 72 61 20 | non-nil|?.Extra |
|000058a0| 61 72 67 73 20 61 72 65 | 20 61 64 64 69 74 69 6f |args are| additio|
|000058b0| 6e 61 6c 20 73 65 71 75 | 65 6e 63 65 73 3b 20 50 |nal sequ|ences; P|
|000058c0| 52 45 44 49 43 41 54 45 | 20 67 65 74 73 20 6f 6e |REDICATE| gets on|
|000058d0| 65 20 61 72 67 20 66 72 | 6f 6d 20 65 61 63 68 0a |e arg fr|om each.|
|000058e0| 73 65 71 75 65 6e 63 65 | 20 61 6e 64 20 77 65 20 |sequence| and we |
|000058f0| 61 64 76 61 6e 63 65 20 | 64 6f 77 6e 20 61 6c 6c |advance |down all|
|00005900| 20 74 68 65 20 73 65 71 | 75 65 6e 63 65 73 20 74 | the seq|uences t|
|00005910| 6f 67 65 74 68 65 72 20 | 69 6e 20 6c 6f 63 6b 2d |ogether |in lock-|
|00005920| 73 74 65 70 2e 0a 41 20 | 73 65 71 75 65 6e 63 65 |step..A |sequence|
|00005930| 20 6d 65 61 6e 73 20 65 | 69 74 68 65 72 20 61 20 | means e|ither a |
|00005940| 6c 69 73 74 20 6f 72 20 | 61 20 76 65 63 74 6f 72 |list or |a vector|
|00005950| 2e 22 20 28 62 79 74 65 | 2d 63 6f 64 65 20 22 cb |." (byte|-code ".|
|00005960| cc 09 0a 5c 22 21 18 c4 | 1b c4 1d c4 1e 06 08 1e |...\"!..|........|
|00005970| 07 0e 07 40 1e 08 0b 86 | 1e 00 cd 0e 07 21 3f 85 |...@....|.....!?.|
|00005980| 4e 00 ce 0e 09 0e 08 5c | 22 89 16 06 88 0e 06 3f |N......\|"......?|
|00005990| 83 36 00 c4 82 3e 00 ca | 89 13 88 0e 06 89 15 88 |.6...>..|........|
|000059a0| 0e 07 41 16 07 0e 07 40 | 89 16 08 88 82 16 00 88 |..A....@|........|
|000059b0| 0d 2d 29 87 22 20 5b 61 | 72 67 73 20 73 65 71 20 |.-)." [a|rgs seq |
|000059c0| 6d 6f 72 65 73 65 71 73 | 20 72 65 61 64 79 20 6e |moreseqs| ready n|
|000059d0| 69 6c 20 72 65 73 75 6c | 74 20 61 70 70 6c 79 76 |il resul|t applyv|
|000059e0| 61 6c 20 72 65 6d 61 69 | 6e 69 6e 67 20 63 75 72 |al remai|ning cur|
|000059f0| 72 65 6e 74 20 70 72 65 | 64 20 74 20 72 65 61 73 |rent pre|d t reas|
|00005a00| 73 65 6d 62 6c 65 2d 61 | 72 67 73 6c 69 73 74 73 |semble-a|rgslists|
|00005a10| 20 6c 69 73 74 2a 20 65 | 6e 64 70 20 61 70 70 6c | list* e|ndp appl|
|00005a20| 79 5d 20 37 29 29 0a 0a | 28 64 65 66 75 6e 20 65 |y] 7))..|(defun e|
|00005a30| 76 65 72 79 20 28 70 72 | 65 64 20 73 65 71 20 26 |very (pr|ed seq &|
|00005a40| 72 65 73 74 20 6d 6f 72 | 65 73 65 71 73 29 20 22 |rest mor|eseqs) "|
|00005a50| 5c 0a 54 65 73 74 20 50 | 52 45 44 49 43 41 54 45 |\.Test P|REDICATE|
|00005a60| 20 6f 6e 20 65 61 63 68 | 20 65 6c 65 6d 65 6e 74 | on each| element|
|00005a70| 20 6f 66 20 53 45 51 55 | 45 4e 43 45 3b 20 69 73 | of SEQU|ENCE; is|
|00005a80| 20 69 74 20 61 6c 77 61 | 79 73 20 6e 6f 6e 2d 6e | it alwa|ys non-n|
|00005a90| 69 6c 3f 0a 45 78 74 72 | 61 20 61 72 67 73 20 61 |il?.Extr|a args a|
|00005aa0| 72 65 20 61 64 64 69 74 | 69 6f 6e 61 6c 20 73 65 |re addit|ional se|
|00005ab0| 71 75 65 6e 63 65 73 3b | 20 50 52 45 44 49 43 41 |quences;| PREDICA|
|00005ac0| 54 45 20 67 65 74 73 20 | 6f 6e 65 20 61 72 67 20 |TE gets |one arg |
|00005ad0| 66 72 6f 6d 20 65 61 63 | 68 0a 73 65 71 75 65 6e |from eac|h.sequen|
|00005ae0| 63 65 20 61 6e 64 20 77 | 65 20 61 64 76 61 6e 63 |ce and w|e advanc|
|00005af0| 65 20 64 6f 77 6e 20 61 | 6c 6c 20 74 68 65 20 73 |e down a|ll the s|
|00005b00| 65 71 75 65 6e 63 65 73 | 20 74 6f 67 65 74 68 65 |equences| togethe|
|00005b10| 72 20 69 6e 20 6c 6f 63 | 6b 2d 73 74 65 70 2e 0a |r in loc|k-step..|
|00005b20| 41 20 73 65 71 75 65 6e | 63 65 20 6d 65 61 6e 73 |A sequen|ce means|
|00005b30| 20 65 69 74 68 65 72 20 | 61 20 6c 69 73 74 20 6f | either |a list o|
|00005b40| 72 20 61 20 76 65 63 74 | 6f 72 2e 22 20 28 62 79 |r a vect|or." (by|
|00005b50| 74 65 2d 63 6f 64 65 20 | 22 cb cc 09 0a 5c 22 21 |te-code |"....\"!|
|00005b60| 18 c4 1b c6 1d c4 1e 07 | 08 1e 08 0e 08 40 1e 09 |........|.....@..|
|00005b70| 0b 86 1e 00 cd 0e 08 21 | 3f 85 4c 00 ce 0e 0a 0e |.......!|?.L.....|
|00005b80| 09 5c 22 89 16 07 88 0e | 07 83 35 00 c4 82 3c 00 |.\".....|..5...<.|
|00005b90| c6 89 13 88 c4 89 15 88 | 0e 08 41 16 08 0e 08 40 |........|..A....@|
|00005ba0| 89 16 09 88 82 16 00 88 | 0d 2d 29 87 22 20 5b 61 |........|.-)." [a|
|00005bb0| 72 67 73 20 73 65 71 20 | 6d 6f 72 65 73 65 71 73 |rgs seq |moreseqs|
|00005bc0| 20 72 65 61 64 79 20 6e | 69 6c 20 72 65 73 75 6c | ready n|il resul|
|00005bd0| 74 20 74 20 61 70 70 6c | 79 76 61 6c 20 72 65 6d |t t appl|yval rem|
|00005be0| 61 69 6e 69 6e 67 20 63 | 75 72 72 65 6e 74 20 70 |aining c|urrent p|
|00005bf0| 72 65 64 20 72 65 61 73 | 73 65 6d 62 6c 65 2d 61 |red reas|semble-a|
|00005c00| 72 67 73 6c 69 73 74 73 | 20 6c 69 73 74 2a 20 65 |rgslists| list* e|
|00005c10| 6e 64 70 20 61 70 70 6c | 79 5d 20 37 29 29 0a 0a |ndp appl|y] 7))..|
|00005c20| 28 64 65 66 75 6e 20 6e | 6f 74 61 6e 79 20 28 70 |(defun n|otany (p|
|00005c30| 72 65 64 20 73 65 71 20 | 26 72 65 73 74 20 6d 6f |red seq |&rest mo|
|00005c40| 72 65 73 65 71 73 29 20 | 22 5c 0a 54 65 73 74 20 |reseqs) |"\.Test |
|00005c50| 50 52 45 44 49 43 41 54 | 45 20 6f 6e 20 65 61 63 |PREDICAT|E on eac|
|00005c60| 68 20 65 6c 65 6d 65 6e | 74 20 6f 66 20 53 45 51 |h elemen|t of SEQ|
|00005c70| 55 45 4e 43 45 3b 20 69 | 73 20 69 74 20 61 6c 77 |UENCE; i|s it alw|
|00005c80| 61 79 73 20 6e 69 6c 3f | 0a 45 78 74 72 61 20 61 |ays nil?|.Extra a|
|00005c90| 72 67 73 20 61 72 65 20 | 61 64 64 69 74 69 6f 6e |rgs are |addition|
|00005ca0| 61 6c 20 73 65 71 75 65 | 6e 63 65 73 3b 20 50 52 |al seque|nces; PR|
|00005cb0| 45 44 49 43 41 54 45 20 | 67 65 74 73 20 6f 6e 65 |EDICATE |gets one|
|00005cc0| 20 61 72 67 20 66 72 6f | 6d 20 65 61 63 68 0a 73 | arg fro|m each.s|
|00005cd0| 65 71 75 65 6e 63 65 20 | 61 6e 64 20 77 65 20 61 |equence |and we a|
|00005ce0| 64 76 61 6e 63 65 20 64 | 6f 77 6e 20 61 6c 6c 20 |dvance d|own all |
|00005cf0| 74 68 65 20 73 65 71 75 | 65 6e 63 65 73 20 74 6f |the sequ|ences to|
|00005d00| 67 65 74 68 65 72 20 69 | 6e 20 6c 6f 63 6b 2d 73 |gether i|n lock-s|
|00005d10| 74 65 70 2e 0a 41 20 73 | 65 71 75 65 6e 63 65 20 |tep..A s|equence |
|00005d20| 6d 65 61 6e 73 20 65 69 | 74 68 65 72 20 61 20 6c |means ei|ther a l|
|00005d30| 69 73 74 20 6f 72 20 61 | 20 76 65 63 74 6f 72 2e |ist or a| vector.|
|00005d40| 22 20 28 62 79 74 65 2d | 63 6f 64 65 20 22 cb cc |" (byte-|code "..|
|00005d50| 09 0a 5c 22 21 18 c4 1b | c6 1d c4 1e 07 08 1e 08 |..\"!...|........|
|00005d60| 0e 08 40 1e 09 0b 86 1e | 00 cd 0e 08 21 3f 85 4d |..@.....|....!?.M|
|00005d70| 00 ce 0e 0a 0e 09 5c 22 | 89 16 07 88 0e 07 3f 83 |......\"|......?.|
|00005d80| 36 00 c4 82 3d 00 c6 89 | 13 88 c4 89 15 88 0e 08 |6...=...|........|
|00005d90| 41 16 08 0e 08 40 89 16 | 09 88 82 16 00 88 0d 2d |A....@..|.......-|
|00005da0| 29 87 22 20 5b 61 72 67 | 73 20 73 65 71 20 6d 6f |)." [arg|s seq mo|
|00005db0| 72 65 73 65 71 73 20 72 | 65 61 64 79 20 6e 69 6c |reseqs r|eady nil|
|00005dc0| 20 72 65 73 75 6c 74 20 | 74 20 61 70 70 6c 79 76 | result |t applyv|
|00005dd0| 61 6c 20 72 65 6d 61 69 | 6e 69 6e 67 20 63 75 72 |al remai|ning cur|
|00005de0| 72 65 6e 74 20 70 72 65 | 64 20 72 65 61 73 73 65 |rent pre|d reasse|
|00005df0| 6d 62 6c 65 2d 61 72 67 | 73 6c 69 73 74 73 20 6c |mble-arg|slists l|
|00005e00| 69 73 74 2a 20 65 6e 64 | 70 20 61 70 70 6c 79 5d |ist* end|p apply]|
|00005e10| 20 37 29 29 0a 0a 28 64 | 65 66 75 6e 20 6e 6f 74 | 7))..(d|efun not|
|00005e20| 65 76 65 72 79 20 28 70 | 72 65 64 20 73 65 71 20 |every (p|red seq |
|00005e30| 26 72 65 73 74 20 6d 6f | 72 65 73 65 71 73 29 20 |&rest mo|reseqs) |
|00005e40| 22 5c 0a 54 65 73 74 20 | 50 52 45 44 49 43 41 54 |"\.Test |PREDICAT|
|00005e50| 45 20 6f 6e 20 65 61 63 | 68 20 65 6c 65 6d 65 6e |E on eac|h elemen|
|00005e60| 74 20 6f 66 20 53 45 51 | 55 45 4e 43 45 3b 20 69 |t of SEQ|UENCE; i|
|00005e70| 73 20 69 74 20 73 6f 6d | 65 74 69 6d 65 73 20 6e |s it som|etimes n|
|00005e80| 69 6c 3f 0a 45 78 74 72 | 61 20 61 72 67 73 20 61 |il?.Extr|a args a|
|00005e90| 72 65 20 61 64 64 69 74 | 69 6f 6e 61 6c 20 73 65 |re addit|ional se|
|00005ea0| 71 75 65 6e 63 65 73 3b | 20 50 52 45 44 49 43 41 |quences;| PREDICA|
|00005eb0| 54 45 20 67 65 74 73 20 | 6f 6e 65 20 61 72 67 20 |TE gets |one arg |
|00005ec0| 66 72 6f 6d 20 65 61 63 | 68 0a 73 65 71 75 65 6e |from eac|h.sequen|
|00005ed0| 63 65 20 61 6e 64 20 77 | 65 20 61 64 76 61 6e 63 |ce and w|e advanc|
|00005ee0| 65 20 64 6f 77 6e 20 61 | 6c 6c 20 74 68 65 20 73 |e down a|ll the s|
|00005ef0| 65 71 75 65 6e 63 65 73 | 20 74 6f 67 65 74 68 65 |equences| togethe|
|00005f00| 72 20 69 6e 20 6c 6f 63 | 6b 2d 73 74 65 70 2e 0a |r in loc|k-step..|
|00005f10| 41 20 73 65 71 75 65 6e | 63 65 20 6d 65 61 6e 73 |A sequen|ce means|
|00005f20| 20 65 69 74 68 65 72 20 | 61 20 6c 69 73 74 20 6f | either |a list o|
|00005f30| 72 20 61 20 76 65 63 74 | 6f 72 2e 22 20 28 62 79 |r a vect|or." (by|
|00005f40| 74 65 2d 63 6f 64 65 20 | 22 cb cc 09 0a 5c 22 21 |te-code |"....\"!|
|00005f50| 18 c4 1b c4 1d c4 1e 06 | 08 1e 07 0e 07 40 1e 08 |........|.....@..|
|00005f60| 0b 86 1e 00 cd 0e 07 21 | 3f 85 4c 00 ce 0e 09 0e |.......!|?.L.....|
|00005f70| 08 5c 22 89 16 06 88 0e | 06 83 35 00 c4 82 3c 00 |.\".....|..5...<.|
|00005f80| ca 89 13 88 ca 89 15 88 | 0e 07 41 16 07 0e 07 40 |........|..A....@|
|00005f90| 89 16 08 88 82 16 00 88 | 0d 2d 29 87 22 20 5b 61 |........|.-)." [a|
|00005fa0| 72 67 73 20 73 65 71 20 | 6d 6f 72 65 73 65 71 73 |rgs seq |moreseqs|
|00005fb0| 20 72 65 61 64 79 20 6e | 69 6c 20 72 65 73 75 6c | ready n|il resul|
|00005fc0| 74 20 61 70 70 6c 79 76 | 61 6c 20 72 65 6d 61 69 |t applyv|al remai|
|00005fd0| 6e 69 6e 67 20 63 75 72 | 72 65 6e 74 20 70 72 65 |ning cur|rent pre|
|00005fe0| 64 20 74 20 72 65 61 73 | 73 65 6d 62 6c 65 2d 61 |d t reas|semble-a|
|00005ff0| 72 67 73 6c 69 73 74 73 | 20 6c 69 73 74 2a 20 65 |rgslists| list* e|
|00006000| 6e 64 70 20 61 70 70 6c | 79 5d 20 37 29 29 0a 0a |ndp appl|y] 7))..|
|00006010| 28 64 65 66 75 6e 20 73 | 65 74 65 6c 74 20 28 73 |(defun s|etelt (s|
|00006020| 65 71 20 6e 20 6e 65 77 | 76 61 6c 29 20 22 5c 0a |eq n new|val) "\.|
|00006030| 49 6e 20 53 45 51 55 45 | 4e 43 45 2c 20 73 65 74 |In SEQUE|NCE, set|
|00006040| 20 74 68 65 20 4e 74 68 | 20 65 6c 65 6d 65 6e 74 | the Nth| element|
|00006050| 20 74 6f 20 4e 45 57 56 | 41 4c 2e 20 20 52 65 74 | to NEWV|AL. Ret|
|00006060| 75 72 6e 73 20 4e 45 57 | 56 41 4c 2e 0a 41 20 73 |urns NEW|VAL..A s|
|00006070| 65 71 75 65 6e 63 65 20 | 6d 65 61 6e 73 20 65 69 |equence |means ei|
|00006080| 74 68 65 72 20 61 20 6c | 69 73 74 20 6f 72 20 61 |ther a l|ist or a|
|00006090| 20 76 65 63 74 6f 72 2e | 22 20 28 62 79 74 65 2d | vector.|" (byte-|
|000060a0| 63 6f 64 65 20 22 09 47 | 18 0a c5 57 86 0c 00 0a |code ".G|...W....|
|000060b0| 08 59 83 17 00 c6 c7 0a | 08 23 82 37 00 09 3c 83 |.Y......|.#.7..<.|
|000060c0| 24 00 c8 0a 09 0c 23 82 | 37 00 c9 09 21 83 31 00 |$.....#.|7...!.1.|
|000060d0| 09 0a 0c 49 82 37 00 c6 | ca cb 09 21 5c 22 29 87 |...I.7..|...!\").|
|000060e0| 22 20 5b 6c 20 73 65 71 | 20 6e 20 74 20 6e 65 77 |" [l seq| n t new|
|000060f0| 76 61 6c 20 30 20 65 72 | 72 6f 72 20 22 4e 28 25 |val 0 er|ror "N(%|
|00006100| 64 29 20 73 68 6f 75 6c | 64 20 62 65 20 62 65 74 |d) shoul|d be bet|
|00006110| 77 65 65 6e 20 30 20 61 | 6e 64 20 25 64 22 20 73 |ween 0 a|nd %d" s|
|00006120| 65 74 6e 74 68 20 61 72 | 72 61 79 70 20 22 53 45 |etnth ar|rayp "SE|
|00006130| 51 20 73 68 6f 75 6c 64 | 20 62 65 20 61 20 73 65 |Q should| be a se|
|00006140| 71 75 65 6e 63 65 2c 20 | 6e 6f 74 20 60 25 73 27 |quence, |not `%s'|
|00006150| 22 20 70 72 69 6e 31 2d | 74 6f 2d 73 74 72 69 6e |" prin1-|to-strin|
|00006160| 67 5d 20 37 29 29 0a 0a | 28 64 65 66 75 6e 20 65 |g] 7))..|(defun e|
|00006170| 78 74 72 61 63 74 2d 66 | 72 6f 6d 2d 6b 6c 69 73 |xtract-f|rom-klis|
|00006180| 74 20 28 6b 65 79 20 6b | 6c 69 73 74 20 26 6f 70 |t (key k|list &op|
|00006190| 74 69 6f 6e 61 6c 20 64 | 65 66 61 75 6c 74 29 20 |tional d|efault) |
|000061a0| 22 5c 0a 45 58 54 52 41 | 43 54 2d 46 52 4f 4d 2d |"\.EXTRA|CT-FROM-|
|000061b0| 4b 4c 49 53 54 20 4b 45 | 59 20 4b 4c 49 53 54 20 |KLIST KE|Y KLIST |
|000061c0| 5b 44 45 46 41 55 4c 54 | 5d 20 3d 3e 20 76 61 6c |[DEFAULT|] => val|
|000061d0| 75 65 20 6f 66 20 4b 45 | 59 20 6f 72 20 44 45 46 |ue of KE|Y or DEF|
|000061e0| 41 55 4c 54 0a 45 78 74 | 72 61 63 74 20 76 61 6c |AULT.Ext|ract val|
|000061f0| 75 65 20 61 73 73 6f 63 | 69 61 74 65 64 20 77 69 |ue assoc|iated wi|
|00006200| 74 68 20 4b 45 59 20 69 | 6e 20 4b 4c 49 53 54 20 |th KEY i|n KLIST |
|00006210| 28 72 65 74 75 72 6e 20 | 44 45 46 41 55 4c 54 20 |(return |DEFAULT |
|00006220| 69 66 20 6e 69 6c 29 2e | 22 20 28 62 79 74 65 2d |if nil).|" (byte-|
|00006230| 63 6f 64 65 20 22 c4 09 | 0a 5c 22 41 18 08 86 0b |code "..|.\"A....|
|00006240| 00 0b 29 87 22 20 5b 72 | 65 74 72 69 65 76 65 64 |..)." [r|etrieved|
|00006250| 20 6b 65 79 20 6b 6c 69 | 73 74 20 64 65 66 61 75 | key kli|st defau|
|00006260| 6c 74 20 61 73 73 6f 63 | 5d 20 33 29 29 0a 0a 28 |lt assoc|] 3))..(|
|00006270| 64 65 66 75 6e 20 61 64 | 64 2d 74 6f 2d 6b 6c 69 |defun ad|d-to-kli|
|00006280| 73 74 20 28 6b 65 79 20 | 69 74 65 6d 20 6b 6c 69 |st (key |item kli|
|00006290| 73 74 29 20 22 5c 0a 41 | 44 44 2d 54 4f 2d 4b 4c |st) "\.A|DD-TO-KL|
|000062a0| 49 53 54 20 4b 45 59 20 | 49 54 45 4d 20 4b 4c 49 |IST KEY |ITEM KLI|
|000062b0| 53 54 20 3d 3e 20 6e 65 | 77 20 4b 4c 49 53 54 0a |ST => ne|w KLIST.|
|000062c0| 41 64 64 20 61 73 73 6f | 63 69 61 74 69 6f 6e 20 |Add asso|ciation |
|000062d0| 28 4b 45 59 20 2e 20 49 | 54 45 4d 29 20 74 6f 20 |(KEY . I|TEM) to |
|000062e0| 4b 4c 49 53 54 2e 22 20 | 28 62 79 74 65 2d 63 6f |KLIST." |(byte-co|
|000062f0| 64 65 20 22 c3 09 0a 08 | 23 89 10 87 22 20 5b 6b |de "....|#..." [k|
|00006300| 6c 69 73 74 20 6b 65 79 | 20 69 74 65 6d 20 61 63 |list key| item ac|
|00006310| 6f 6e 73 5d 20 34 29 29 | 0a 0a 28 64 65 66 75 6e |ons] 4))|..(defun|
|00006320| 20 65 6c 74 2d 73 61 74 | 69 73 66 69 65 73 2d 74 | elt-sat|isfies-t|
|00006330| 65 73 74 2d 70 20 28 69 | 74 65 6d 20 65 6c 74 20 |est-p (i|tem elt |
|00006340| 6b 6c 69 73 74 29 20 22 | 5c 0a 45 4c 54 2d 53 41 |klist) "|\.ELT-SA|
|00006350| 54 49 53 46 49 45 53 2d | 54 45 53 54 2d 50 20 49 |TISFIES-|TEST-P I|
|00006360| 54 45 4d 20 45 4c 54 20 | 4b 4c 49 53 54 20 3d 3e |TEM ELT |KLIST =>|
|00006370| 20 74 20 6f 72 20 6e 69 | 6c 0a 4b 4c 49 53 54 20 | t or ni|l.KLIST |
|00006380| 65 6e 63 6f 64 65 73 20 | 61 20 6b 65 79 77 6f 72 |encodes |a keywor|
|00006390| 64 2d 61 72 67 75 6d 65 | 6e 74 73 20 74 65 73 74 |d-argume|nts test|
|000063a0| 2c 20 61 73 20 69 6e 20 | 43 48 2e 20 31 34 20 6f |, as in |CH. 14 o|
|000063b0| 66 20 43 4c 74 4c 2e 0a | 54 72 75 65 20 69 66 20 |f CLtL..|True if |
|000063c0| 74 68 65 20 67 69 76 65 | 6e 20 49 54 45 4d 20 61 |the give|n ITEM a|
|000063d0| 6e 64 20 45 4c 54 20 73 | 61 74 69 73 66 79 20 74 |nd ELT s|atisfy t|
|000063e0| 68 65 20 74 65 73 74 2e | 22 20 28 62 79 74 65 2d |he test.|" (byte-|
|000063f0| 63 6f 64 65 20 22 ca 09 | 0a 5c 22 ca 0c 0a 5c 22 |code "..|.\"...\"|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.